小编Bur*_*rns的帖子

Perl,从正则表达式匹配赋值给变量

我对perl相对比较新,在check_ilo2_health.pl中有一段代码示例,其中有一段语法,我不明白它是如何工作的或原因.代码片段逐行解析SSL客户端数据,在本例中为XML.

if ( $line =~ m/MESSAGE='/) {
   my ($msg) = ( $line =~ m/MESSAGE='(.*)'/);  #<---- HERE

   if ( $msg !~ m/No error/ ) {
      if ( $msg =~ m/Syntax error/ ) {  #...etc
Run Code Online (Sandbox Code Playgroud)

有问题的XML示例:

<RESPONSE
    STATUS="0x0000"
    MESSAGE='No error'
 />
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,if语句采用XML样本的MESSAGE行.我知道我的($ msg)将变量视为一种列表,我理解正则表达式是如何匹配的; 不过,我不明白的是这样的语法$味精分配没有错误.perl似乎正在使用括号语法,这样才能实现.虽然它有效但我想知道它是如何工作的.任何援助将不胜感激.

regex syntax perl variable-assignment parentheses

5
推荐指数
1
解决办法
7182
查看次数

标签 统计

parentheses ×1

perl ×1

regex ×1

syntax ×1

variable-assignment ×1