Perl列表赋值中忽略元素的最优方法是什么?
在Perl中跳过列表赋值里的元素(无需dummy变量)
你当前用dummy变量跳过不需要的元素确实可行,但Perl有更简洁的方式避免未使用的变量:
方法1:用undef占位
直接在不需要的位置写undef,Perl不会为此创建变量,完全符合你的需求:
perl -E '(my $first, undef, my $third) = split(/\t/, qq[a\tb\tc]); say $first; say $third;'
运行输出:
a c
方法2:使用数组切片
利用Perl的列表切片特性,直接提取split结果中你需要的索引(Perl是0-based索引):
perl -E 'my ($first, $third) = (split /\t/, qq[a\tb\tc])[0, 2]; say $first; say $third;'
这种方式适合跳过多个元素、或者提取非连续位置元素的场景,可读性也不错。
方法3:忽略末尾元素(按需)
如果是要跳过列表末尾的所有不需要元素,直接只声明需要的变量即可,Perl会自动丢弃多余的值:
# 比如只取第一个元素,丢弃后面所有 perl -E 'my ($first) = split(/\t/, qq[a\tb\tc]); say $first;'
内容的提问来源于stack exchange,提问作者Wes
相关产品推荐
相关产品推荐

