Значение /test/
оценивается как 0
или 1
, в зависимости от того, соответствует ли текущая запись (строка) регулярному выражению.
Строка объединяется с результатом вычисления переменной p
(возможно, пустой строкой).
Таким образом, вы получите условие "0"
или "1"
, оба из которых true , что означает выполнение действия по умолчанию { print }
.
Тот факт, что p
выглядит как модификатор регулярного выражения, является просто совпадением; такое же поведение можно наблюдать с любым из следующего, которые все производят непустую строку (p
предполагается пустой):
/test/ p # concatenate 0 or 1 with empty variable
/test/ "" # concatenate 0 or 1 with empty string literal
0 p # "0"
0 "" # "0"