В очередной раз язык Perl доказывает свою гибкость, универсальность. Как поговаривал Ларри Уолл: "Это можно сделать разными способами". Под катом несколько примеров работы с URL-адресами.

perl регулярные выражения url

1) Чистим все в URL (http, www, замыкающих слеш)

my $url = 'http://www.renotes.ru/perl-url-regex/';

for ($url) {
	s{^\s*}{};
	s{\s*$}{};
	s{(?:^.+:)?//}{};
	s{^www\.}{}i;
	s{(.*)/.*}{$1};
	$_ = lc;
}

Результат: renotes.ru/perl-url-regex

2) Можно проще:

my $url = 'http://www.renotes.ru/perl-url-regex/';
$url =~ s/^http\:\/\/|^https\:\/\///;
$url =~ s/^www\.//;
$url =~ s/\/$//;

Результат: renotes.ru/perl-url-regex

3) Нижеследующий пример кода разбивает строку на протокол, домен и uri.

my $url = 'http://renotes.ru/perl-url-regex';
my @ds = $url =~ m|(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?|;
print Dumper(\@ds);

4) Оставим только домен.

$string =~ s/\/(.*)//;

Также можете заглянуть в пост Регулярные выражения Perl, который иногда обновляю. В нем я собираю примеры, которые могут пригодиться perl-разработчику.