मेरे पास मेरी कक्षा में निम्न कोड है:मैं पर्ल में कॉलबैक के रूप में कोड रेफरी का उपयोग कैसे कर सकता हूं?
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);
}
और निम्न कोड वाला एक स्क्रिप्ट:
use strict;
use warnings;
use MyPackage;
my $callback = sub {
my $arg = shift;
print $arg;
};
my $obj = MyPackage->new(callback => $callback);
लेकिन मुझे निम्न त्रुटि प्राप्त होती है:
Not a CODE reference ...
मुझे क्या याद आ रही है ? प्रिंटिंग ref($self->{callback})
CODE
दिखाता है। यह काम करता है अगर मैं $self->{callback}->($arg)
का उपयोग करता हूं, लेकिन मैं कोड रेफरी का आविष्कार करने का एक और तरीका उपयोग करना चाहता हूं।
आप एक कोड रेफरी को कम करने का दूसरा तरीका क्यों चाहते हैं? क्या काम करता है और अगली समस्या पर आगे बढ़ें। :) –