Серия постов "Стандарты кодирования Perl". Часть 3: Регулярные выражения
1. Используйте флаг "x" для сложных регулярных выражений
Если вы используете действительно сложное регулярное выражение, используйте модификатор "x" и разделите текст пробелами, чтоб он не выглядел как нагромождение мусора.
2. Используйте удобные ограничители для регулярных выражений
Не используйте наклонную черту в качестве ограничителя когда ваше выражение содержит прямые или обратные наклонные черты:
# Используем удобный ограничитель
$s =~ s{/}{::};
# Это куда нагляднее, чем /\//::/;
3. Разбивайте сложные регулярные выражения на части
Будет гораздо нагляднее, если Вы составите сложное регулярное выражение из нескольких кусочков. Кусочки можно хранить как в виде строк, так и в виде qr//:
# Строим регексп для матчинга чисел с плавающей точкой...
Readonly my $DIGITS => qr{ \d+ (?: [.] \d*)? | [.] \d+ }xms;
Readonly my $SIGN => qr{ [+-] }xms;
Readonly my $EXPONENT => qr{ [Ee] $SIGN? \d+ }xms;
Readonly my $NUMBER => qr{ ( ($SIGN?) ($DIGITS) ($EXPONENT?) ) }xms;
4. Безопасно обрабатывайте данные, получаемые извне
Если Вы используете данные, полученные извне, как есть, тем самым Вы подвергаете систему уязвимости. Используйте квотирование, например, так:
$test =~ m/\b\Q$param_name\E: \s+ (\d+)/x;
Original: REG.RU coding standarts