如何跳过类似于Haskell模式匹配的Perl列表赋值中的元素?

前端之家收集整理的这篇文章主要介绍了如何跳过类似于Haskell模式匹配的Perl列表赋值中的元素?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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)= @_;

猜你在找的Perl相关文章