Если вам нужно извлечь ссылки из HTML, используйте что-то вроде HTML :: SimpleLinkExtor , чтобы обработать эту часть.
URL-адреса - это сложные вещи, которые становятся все сложнее.Используемое вами регулярное выражение неизбежно будет неверным.Вы можете использовать модуль URI, чтобы проанализировать URL-адрес и затем изменить его.
use URI;
my $uri = URI->new($url_string);
Теперь, когда у нас есть $ uri в качестве объекта, мы можем получить только часть пути и изменить ее, чтобы отрезать все, что нам нужноне хочу.
# Get the path already split into pieces
my @path = $uri->path_segments;
# Put just the first bit back, also clear the query
$uri->path_query($path[0]);
# clear any "#foo" it might have
$uri->fragment(undef);
А теперь $ uri - это то, что вы хотите.Его строка перегружена, поэтому вы можете просто использовать $ uri в качестве строки.