жжошь =) -- единственный минус $& - что если несколько таких выдираний идет и в строке не находится ничего подходящего по регекспу то она не перезапишется и выдаст тебе повтор с предыдущего поиска
ченить типо
print $& if $text =~ m![a-z0-9:/.]+\.[a-z]+!i; - будет разумнее
ну и не забывай что если часть регекспа в кавычки зафигачить то эта помещается в переменные $1,$2 и тд...
можно например print $1 if $text =~ m!([a-z0-9:/.]+\.[a-z]+)!i; сделать
или с помощью замены всей строки чисто на линк - так переприсваивать ненадо ничего буит
$text = 'text link.ru';
$text =~s/text (твой регексп)/$1/; -- тока в этом случае надо всю строку регекспом описывать что она заменилась на тот линк который тебе надо
#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;
my $text = 'text link.ru';
my ($link) = $text =~ m!([a-z0-9:/.]+\.[a-z]+)!i;
print $link, "\n";