A
Aaron Brice
I need to check that a method whose name is given in $methodName
exists. In perl 5.8.0, "if (defined($myobj->$methodName))" seems to
work, but not in 5.00503, so I'm wondering what the 5.00503 equivalent
would be if it exists (upgrading is not an option right now). The
following test code works in 5.8.0 but gives me a syntax error in
5.00503:
#!/usr/bin/perl
use strict;
my $myobj = new MyTest;
my $var = "testMethod";
if (defined($myobj->$var)) {
my $ret = $myobj->$var();
print "Defined: $ret\n";
} else {
print "Not defined\n";
}
package MyTest;
sub new {
my ($proto) = @_;
my $self = {};
bless($self, "MyTest");
return $self;
}
sub testMethod {
return 52;
}
exists. In perl 5.8.0, "if (defined($myobj->$methodName))" seems to
work, but not in 5.00503, so I'm wondering what the 5.00503 equivalent
would be if it exists (upgrading is not an option right now). The
following test code works in 5.8.0 but gives me a syntax error in
5.00503:
#!/usr/bin/perl
use strict;
my $myobj = new MyTest;
my $var = "testMethod";
if (defined($myobj->$var)) {
my $ret = $myobj->$var();
print "Defined: $ret\n";
} else {
print "Not defined\n";
}
package MyTest;
sub new {
my ($proto) = @_;
my $self = {};
bless($self, "MyTest");
return $self;
}
sub testMethod {
return 52;
}