[code]
$b=«Tra lala 1234 The end»;
@a=(1,2,3,4);
$_=join(«|»,@a);
$b=~m/^.*($_)+.*$/ && print «hello\n»;
[/code]
Не просто часто, а очень часто (и не только в Perl, разумеется) встречается ситуация, когда есть некий список и нужно его вставить как часть регулярного выражения в виде (a[0]|a[1]|a[2])
Функция join делает свою работу на отлично, но внутри регэкспа она не раскрывается, приходится прибегать к дополнительному присваиванию. А как сделать проще? По-моему был раньше модификатор /e (от evaluate), но в современном перле это не работает. Скобки вида (?{join(та-та-та)}) тоже не катят.. Так что, оставить как есть?
P.S. Знаю, что есть grep, но это _очень_ частный случай, а как в более общем случае вставлять возврат функций в регэкспы?