Sınıfımdaki şu kodum var:Perl'de geri arama kodu olarak nasıl ref kodu kullanabilirim?
sub new {
my $class = shift;
my %args = @_;
my $self = {};
bless($self, $class);
if (exists $args{callback}) {
$self->{callback} = $args{callback};
}
if (exists $args{dir}) {
$self->{dir} = $args{dir};
}
return $self;
}
sub test {
my $self = shift;
my $arg = shift;
&$self->{callback}($arg);
}
ve aşağıdaki kodu içeren bir komut dosyası:
use strict;
use warnings;
use MyPackage;
my $callback = sub {
my $arg = shift;
print $arg;
};
my $obj = MyPackage->new(callback => $callback);
ancak şu hatayı alıyorum:
Not a CODE reference ...
Neyi eksik? ? Xzx51 yazdırma CODE
gösterir. Xzx53 kullanırsam çalışır, ancak kodu ref çağırmanın başka bir yolunu kullanmak isterim.
Neden bir kod referansının başka bir yolunu almak istiyorsunuz? Neyin işe yaradığını kullanın ve bir sonraki probleme geçin. :) –