我有一个 Perl 模块文件 MyClass.pm
,其中包含一个非常基本的类定义。
use strict;
use warnings;
package MyClass;
sub new {
my $this = shift;
my $self = {};
bless $self, $this;
return $self;
}
sub displayChar{
my $self = shift;
my $char = shift;
print $char . "\n";
}
1;
我还有一个 myClass.pl
文件,用于创建 MyClass 的实例。
#!/usr/bin/perl
use strict;
use warnings;
use MyClass;
my $myClass = MyClass->new();
$myClass->displayChar('a'); # This line works right
my @charArray = ('a', 'b', 'c');
map($myClass->displayChar, @charArray);
当我调用 displayChar
方法时,它工作正常,但是当我尝试将 map 函数与该方法一起使用时,它给我这个错误三次(我猜每个数组项一次):
Use of uninitialized value $char in concatenation (.) or string at MyClass.pm line 16.
我是否以错误的方式使用 map 功能?或者也许无法使用对象方法作为第一个参数?
最佳答案
关于使用对象方法的 Perl 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40383445/