Разбейте его на части:
$lines =~ m/ (.*?) # Match any character (except newlines)
# zero or more times, not greedily, and
# stick the results in $1.
: # Match a colon.
(.*?) # Match any character (except newlines)
# zero or more times, not greedily, and
# stick the results in $2.
$ # Match the end of the line.
/gx;
Таким образом, это будет соответствовать строкам, таким как ":"
(это соответствует нулю символов, затем двоеточию, затем нулю символов до конца строки, $1
и $2
- пустые строки) или "abc:"
( $1 = "abc"
, $2
- пустая строка) или "abc:def:ghi"
($1 = "abc"
и $2 = "def:ghi"
).
И если вы передадите строку, которая не соответствует (похоже, что это будет, если строка не содержит двоеточия), то она не будет обрабатывать код, который находится в скобках. Но если оно совпадает, то код в скобках может использовать и обрабатывать специальные переменные $1
и $2
(по крайней мере, до появления следующего регулярного выражения, если оно есть в скобках).