【发布时间】:2018-08-29 18:03:51
【问题描述】:
map(encode_entities, @_) 似乎不起作用,函数来自HTML::Entities。我可以解决它(见下文),但有没有更丑陋的方法?有人可以解释发生了什么——我的想法是否存在概念错误?
use HTML::Entities;
sub foo {
my @list = map(encode_entities, @_);
return @list;
}
sub bar {
my @list = @_;
my $n = scalar @list;
for my $k (0..$n-1) {
$list[$k] = encode_entities($list[$k]);
}
return @list;
}
my @test = ('1 < 2', 'Hello world!');
print join("\n", bar(@test)); # prints the two lines, encoded as expected
print join("\n", foo(@test)); # undefined, gives "Use of uninitialized value..." error
【问题讨论】:
-
map { encode_entities($_) } @_;怎么样@encode_entities使用时必须明确 => metacpan.org/pod/HTML::Entities
标签: perl cpan higher-order-functions