Мне вот кто то сказал, что в перле есть модуль, который кодирует и раскодирует URL, т.е. приводит к видуhttp://www.yandex.ru/yandpage?&q=1374348082&p=1&ag=d&qs=&text=считать+из+db+файла+Perl
русскоязычные названия, например.
Или проще написать ручами функицю, которая название переводит в такой хитрый хекс вид?
>Мне вот кто то сказал, что в перле есть модуль, который кодирует
>и раскодирует URL, т.е. приводит к виду
>
>http://www.yandex.ru/yandpage?&q=1374348082&p=1&ag=d&qs=&text=считать+из+db+файла+Perl
>
>русскоязычные названия, например.
>Или проще написать ручами функицю, которая название переводит в такой хитрый хекс
>вид?
Я не совсем понимаю почему у Вас 1374348082=считать, и вообще где Вы взяли эту строку, так как у меня запрос "считать+из+db+файла+Perl" в яндексе превращается в "%F1%F7%E8%F2%E0%F2%FC%2B%E8%E7%2Bdb%2B%F4%E0%E9%EB%E0%2BPerl+&stype=www" и это вот как раз хекс(16ый). В перле для этого есть модуль URI::Escape.
>Мне вот кто то сказал, что в перле есть модуль, который кодирует
>и раскодирует URL, т.е. приводит к виду
>
>http://www.yandex.ru/yandpage?&q=1374348082&p=1&ag=d&qs=&text=считать+из+db+файла+Perlsub url_encode{
my $URLencode=shift;
$URLencode=~s/([^0-9A-Za-z_ ])/'%'.unpack('H2',$1)/ge;
$URLencode=~s/\s/+/g;
return $URLencode;
}достойно отдельного модуля?
>Мне вот кто то сказал, что в перле есть модуль, который кодирует
>и раскодирует URL, т.е. приводит к виду
>
>http://www.yandex.ru/yandpage?&q=1374348082&p=1&ag=d&qs=&text=считать+из+db+файла+Perl
>
>русскоязычные названия, например.
>Или проще написать ручами функицю, которая название переводит в такой хитрый хекс
>вид?
sub urldecode{
$data=shift;
$data=~s/\+/ /g;
$data=~s/%([0-9A-Ha-h]{2})/pack('C',hex($1))/ge;
return $data;
}
А это модуль "раскодировки";
Всем большое спасибо, оказывается все еще проще:use CGI;
sub encode_url {
(my $m_url) = @_;
return CGI::escape($m_url);
}sub decode_url {
(my $m_url) = @_;
return CGI::unescape($m_url);
}
и кодирует и раскодирывает строку в url