我正在学习perl,当我尝试做面向对象时,我遇到了错误,这是代码,Test.pm
#!/usr/bin/perl
package Test;
sub new
{
my $class = shift;
my $self = {
_firstName => shift,
_lastName => shift,
_ssn => shift,
};
# Print all the values just for clarification.
print "First Name is $self->{_firstName}\n";
print "Last Name is $self->{_lastName}\n";
print "SSN is $self->{_ssn}\n";
bless $self, $class;
return $self;
}
sub setFirstName {
my ( $self, $firstName ) = @_;
$self->{_firstName} = $firstName if defined($firstName);
return $self->{_firstName};
}
sub getFirstName {
my( $self ) = @_;
return $self->{_firstName};
}
1;
Run Code Online (Sandbox Code Playgroud)
和test.pl
#!/usr/bin/perl
use Test;
$object = Test::new( "Mohammad", "Saleem", 23234345); # Get first name which is set using constructor.
$firstName = $object->getFirstName();
print "Before Setting First Name is : $firstName\n";
# Now Set first name using helper function.
$object->setFirstName( "Mohd." );
# Now get first name set by helper function.
$firstName = $object->getFirstName();
print "Before Setting First Name is : $firstName\n";
Run Code Online (Sandbox Code Playgroud)
当我试图跑步时,它显示出这样的一些错觉,
Can't locate object method "new" via package "Test" at test.pl line 2.
Run Code Online (Sandbox Code Playgroud)
这个面向对象程序的错误是什么?
Test是作为perl标准发行版的一部分的模块的名称.你use Test
正在加载而不是你的测试; 为您的模块选择另一个名称.