-6ren">
gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 13:52:16 27 4
gpt4 key购买 nike

在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) = @_;

这将失败,并显示以下错误消息:“ Can't declare constant item in "my" at [...]overlength_filter.pl line 17, near ") ="

那么,该下划线通配符的Perl等价于什么?

最佳答案

只需将其分配给undef即可。
my ($message, undef, $windowItem) = @_;

关于perl - 如何跳过类似于Haskell模式匹配的Perl列表分配中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27995584/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com