Я относительно новичок в perl, и есть пример фрагмента кода в check_ilo2_health.pl, в котором есть фрагмент синтаксиса, который я не понимаю, как и почему он работает. Фрагмент кода обрабатывает данные клиента SSL, в данном случае XML, строчно.Perl, Назначить переменной из регулярного выражения
if ($line =~ m/MESSAGE='/) {
my ($msg) = ($line =~ m/MESSAGE='(.*)'/); #<---- HERE
if ($msg !~ m/No error/) {
if ($msg =~ m/Syntax error/) { #...etc
Пример XML в вопросе:
<RESPONSE
STATUS="0x0000"
MESSAGE='No error'
/>
Таким образом, в этом случае, если оператор принимает MESSAGE линию образца XML. Я понимаю, что my ($ msg) рассматривает переменную как своего рода список, и я понимаю, как совпадают регулярные выражения; однако, я не понимаю, что синтаксис такой, что $ msg is присвоен до Ошибка. Кажется, что perl играет с синтаксисом в скобках, и для этого он работает. Пока он работает, я хотел бы знать, как это работает. Любая помощь будет оценена.
Если вы имеете в виду '= ~' или '! ~', Это [связывающие операторы] (http://perldoc.perl.org/perlop.html#Binding-Operators). –