Хорошо, попытаюсь объяснить свою позицию.
[A-Z0-9]+ Вместо \w+
Оба варианта отлично читаются, как мне кажется.
Но в данном контексте использовать \w+ вредно, т.к. захватывает много лишнего
$aa ="N1089767N_7_SWOPT_03-Jul-2011_78919186.xml";
$aa =~ m/(\w+_\d+)_(\d+)-([A-Za-z]{3})-2011_(\d+)[.]xml/i;
Перым делом \w+ захватит всё до -
т.е. N1089767N_7_SWOPT_03
Что явно не то, что хотелось.
Если [A-Z0-9]+ слишком длинно, можно написать так [^_]+Во втором случае вообще не вижу причин для недовольства. Основная мысль - копирование одного и того же RegExp'а в несколько мест недопустимо. Из моего опыта могу сказать, что выносить RegExp'ы в константы/переменные, а константы выделять в отдельный пакет - очень здравое решение. Особенно, если для этого пакета написать юнит-тесты. -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
