Поскольку вы говорите о "URL-адресе веб-сайта", я полагаю, что вас интересуют только URL-адреса HTTP и HTTPS.
Для этого вместо использования регулярных выражений вы можете использовать модуль Perl Data :: Validate :: URI .
Например, для проверки URL-адресов HTTP и HTTPS:
use Data::Validate::URI;
my $url = "http://google.com";
my $uriValidator = new Data::Validate::URI();
print "Valid web URL!" if $uriValidator->is_web_uri($url)
И, чтобы проверить только HTTP URL:
print "Valid HTTP URL!" if $uriValidator->is_http_uri($url)
Наконец, для проверки любого правильно отформатированного URI:
print "Valid URI!" if $uriValidator->is_uri($url)
Если вместо этого по какой-либо причине вам действительно нужно регулярное выражение, вы можете использовать что-то вроде следующего для проверки HTTP / HTTPS / FTP / SFTP URL:
print "Valid URL!\n" if $url =~ /^(?:(?:https?|s?ftp))/i;