nan*_*ocv 2 perl instance-method map-function
我有一个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;
Run Code Online (Sandbox Code Playgroud)
我还有一个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);
Run Code Online (Sandbox Code Playgroud)
当我调用该displayChar方法时,它工作正常,但是当我尝试使用该方法的map函数时,它会给我三次这个错误(每个数组项一次,我猜):
Use of uninitialized value $char in concatenation (.) or string at MyClass.pm line 16.
Run Code Online (Sandbox Code Playgroud)
我是否以错误的方式使用地图功能?或者也许不可能使用对象方法作为第一个参数?
您需要将值传递给您的displayChar方法:
map($myClass->displayChar($_), @charArray);
Run Code Online (Sandbox Code Playgroud)
map本地将$ _变量设置为数组的每个值.