Perl: парсинг URL

Модератор: Модераторы разделов

Аватара пользователя
agbr
Сообщения: 486
ОС: openSUSE 10.2

Perl: парсинг URL

Сообщение agbr »

Ищется самый короткий (и быстрый) в языке Perl способ разбить URL (напрмер "http://www.kernel.org/pub/linux/kernel/v2.4/patch-2.4.28.bz2") на три части (три строки):
1) $servername=="www.kernel.org"
2) $filepath=="/pub/linux/kernel/v2.4/"
3) $filename=="patch-2.4.28.bz2"
jabber: agbr@jabber.ru

против проприетарного ПО в GNU/Linux
Спасибо сказали:
Аватара пользователя
nercus
Сообщения: 150

Re: Perl: парсинг URL

Сообщение nercus »

Код: Выделить всё

$_ = $url;
s!^http://!!;
my ($servername,$filepath,$filename) = split(/(\/.+\/)/);
2.6.14-gentoo-r5
kde-3.5.0 | openbox-3.2
Deep Purple | Rob Zombie | Led Zeppelin | ДДТ
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: Perl: парсинг URL

Сообщение madskull »

my ($servername,$filepath,$filename) = $url =~ m#^http://(.+?)/(.+)/(.+)$#;

А вообще-то есть классы, типа URI. Если в них разобраться, то использовать их проще и безопаснее.
ArchLinux / IceWM
Спасибо сказали:
Аватара пользователя
xorader
Сообщения: 1030
Статус: собирающий миры
ОС: Debian

Re: Perl: парсинг URL

Сообщение xorader »

Именно безопасней... ребята на этом собаку сьели - в смысле на уязвимостях как раз в разборе URI, так что лучше довериться либе (или посмотреть её код - как вариант).
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
Спасибо сказали: