我有一个 Perl 脚本(跳过许多不相关的行)
use HTML::Entities;
my @keys = ('ID', 'first', 'last'); # data is not actually constant
my @encodedKeys = map(encode_entities, @keys);
运行没有错误。但是当我尝试访问数组中的值时,我得到了错误:
Use of uninitialized value $encodedKeys[0] in join or string at myfile.pl line 48.
如果我删除映射,代码可以正常工作——也就是说,变量不是空字符串或空字符串。我究竟做错了什么?有没有一种很好的惯用方法来做到这一点? (按顺序执行显然是微不足道的。)
最佳答案
encode_entities
函数默认不使用$_
,所以你需要给它一个参数。将您的 map
语句更改为以下内容即可:
my @encodedKeys = map {encode_entities $_} @keys
关于perl - 将 Perl 的映射与自定义函数一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7070705/