私は比較的新しいperlであり、コードの例がcheck_ilo2_health.plにありますが、その仕組みがわからない構文があります。コードスニペットは、SSLクライアントデータ(この場合はXML)を1行ずつ解析しています。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'
/>
だから、この場合に if文は、XMLサンプルのMESSAGEラインを取ります。私は私の($ msg)は、並べ替えのリストとして変数を扱うことを理解し、私は正規表現の一致方法を理解しています。しかし、私が理解できないのは、$ msgがであり、からに割り当てられていないという構文です。エラーはありませんです。 perlは、括弧の構文などでこれを動作させるように見えます。それが動作している間、私はそれがどのように動作するか知りたいです。いかなる援助も感謝します。
'=〜'や '!〜'を参照している場合は、[バインディング演算子](http://perldoc.perl.org/perlop.html#Binding-Operators)です。 –