我有一个MyClass.pm
带有非常基本的类定义的 Perl 模块文件。
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.
我是否以错误的方式使用地图功能?或者也许不可能使用对象方法作为第一个参数?