Perl, как выделить из строки то что в квадратных скобках []?
в лоб # Если в строке бывает ровно три квадратных скобки
/\[(.*)\].*\[(.*)\].*\[(.*)\]/; 
($num, $tunnel_from, $tunnel_to)=($1,$2,$3)
не подходит?
Изящнее:($num, $tunnel_from, $tunnel_to) = /\[(.+?)\]/g
Не самый красивый вариант. Но сгодится.  А есть еще варианты?
Я тоже в 2 строчки решил, но так не интересно)
@num=split(/[\[\]]/, $_);
    ($tunnel_to, $ num, $tunnel_from) = (${num[0]}, ${num[1]}, ${num[3]});