Perl 5.34中uniq子函数报错的原因排查与解决方法
Perl 5.34中经典uniq去重函数报错的解决方法
在Perl社区流传多年的列表去重子函数:
sub uniq { my %seen; grep !$seen{$_}++, @_ }
在Perl 5.34版本运行时会抛出语法错误,报错内容包含“无法使用全局$_”等提示。尝试通过local $_等方式修复均无效,最终定位问题根源是该函数定义的前一行代码缺少分号,补充分号后函数即可正常执行。
错误代码示例
1 sub uniq { my %seen; grep !$seen{$_}++, @_ }
正确代码示例
1; sub uniq { my %seen; grep !$seen{$_}++, @_ }
内容的提问来源于stack exchange,提问作者reikred
相关产品推荐
相关产品推荐

