Основываясь на некоторых ваших комментариях, я собираюсь предположить, что ваш вопрос "заключен в квадратные скобки" ["и"], убедитесь, что любой символ "e_" - это "e_FOO", а не что-то другое ...
(Изменить: хорошо, похоже, вам нужно, чтобы ключевое слово "FOO" также появлялось непосредственно перед квадратными скобками. Я соответствующим образом пересмотрю регулярное выражение.)
if ($line =~ /
([A-Z]+) # match a keyword in all caps, and save it for later
# (we can retrieve it with \1 or $1)
\[ # match the first [
[\]]* # some number of any character that isn't ]
e_ # a ha, here's our e_
\1 # and here's our keyword that we matched earlier
[\]]* # some more of any character that isn't ]
\] # here's our closing ]
/x)
{
say "Good data";
}
else
{
say "Bad data";
}
Но, пожалуйста, начните читать некоторые уроки в perldoc perlre .