可以通过以下两种方式调用grep.我正好错过了一条信息来理解这块魔法.也许一个好的灵魂可以向我解释grep internal如何获取对块的引用并处理它甚至更好我如何编写使用bock表示法的子例程.
1)这是我认为的传统方式.grep EXPR,列表示例:@foo = grep(!/^#/, @bar);
2)这对我很好,但很神奇但很神奇.grep BLOCK LIST示例:@foo = grep {!/^#/} @bar;
提前谢谢了.
BR /赫尔曼
检查原型
sub mygrep (&@) { my $f = shift; return map { $f->() ? $_ : () } @_; } print join "\n", mygrep { $_%2 } 1..10;
与上面相同,但没有原型,
sub mygrep { my $f = shift; return map { $f->() ? $_ : () } @_; } print join "\n", mygrep( sub{ $_%2 }, 1..10 );