在
Haskell(和各种其他函数式编程语言)中,pattern matching可用于分配列表的特定元素,同时丢弃其他元素:
Prelude> let [x,_,z] = "abc" Prelude> x 'a' Prelude> [z,x] "ca"
请注意,’_’不是变量,并且未分配任何内容:
Prelude> _ <interactive>:5:1: Pattern Syntax in expression context: _
对于用Perl编写的IRSSi脚本,我想做类似的事情并丢弃’@_’的第二个元素(即不将它分配给任何东西):
my ($message,$windowItem) = @_;
这失败并显示错误消息:“无法在[…] overlength_filter.pl第17行的”my“中声明常量项,靠近”)=“”
那么这个下划线通配符的Perl等价物是什么?
解决方法
只需将其分配给undef.
我的($message,undef,$windowItem)= @_;