В очередной раз язык 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-разработчику.