这个表达会起作用吗?

时间:2015-02-04 09:00:14

标签: perl

我是Perl的新手,需要一些帮助来理解某人的代码。 下面粘贴的是一段Perl代码。你能帮我理解它的含义吗?

my @m1 =keys( %{$key} );
foreach (@m1){
    if (m/^(.*)\/$/) {   
             $a=$1;
} }

这似乎不起作用。这实际上是否会将m1中的值与捕获组匹配?变量a是否包含捕获组的匹配?

键功能实际上做了什么?

1 个答案:

答案 0 :(得分:4)

这是不必要的噪音。这种代码是Perl遭到破坏的原因。它与

相同
my @m1 = keys %$key;

for (@m1) {
  if ( m|^(.*)/$| ) {
    $a = $1;
  }
}

它遍历由$key引用的哈希中的所有键(将$_设置为每个键)并检查它们是否以斜杠字符/结尾。如果是,则将$a设置为没有终止斜杠的键字符串。

我认为循环中必须有比你所示更多的东西,因为它现在没有什么用处。