【发布时间】:2015-03-15 17:51:26
【问题描述】:
在 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 脚本,我想做类似的事情并丢弃 '@_' 的第二个nd 元素(即不将其分配给任何东西):
my ($message, _, $windowItem) = @_;
此操作失败并显示错误消息:“Can't declare constant item in "my" at [...]overlength_filter.pl line 17, near ") ="”
那么这个下划线通配符的 Perl 等价物是什么?
【问题讨论】:
-
在不遇到正则表达式的情况下很难找到答案。 :-/
标签: perl pattern-matching variable-assignment