我是OO perl的新手。我正在嘗試寫一個簡單的程序,但得到錯誤。在面向對象的perl中獲取問題
創建一個包Employee.pm作爲
package Employee;
sub new {
my $class = shift;
my $self = {};
bless $self, $class;
return $self;
}
sub get_names {
my $self = @_;
print " getting the names \n";
return $self;
}
sub set_names {
my ($self, $last_name) = @_;
$self->{last_name} = $last_name;
return $self->{$last_name};
}
1;
而且創造了一個特等文件
use strict;
use warnings;
use Employee;
my $obj = new Employee("name" => "nitesh", "last_name" => "Goyal");
my $val = $obj->get_names();
print %$val;
my $setName = $obj->set_names("kumar");
print "$setName \n";
我得到錯誤的
"Can't use string ("1") as a HASH ref while "strict refs" in use at class1.txt line 10."
另一個查詢:就像在「sub get_names」中一樣,我們聲明瞭$ self = @_,並且在調用腳本中我們傳遞的是$ obj-> get_names()。爲什麼在我們完成$ self = @_的時候沒有參數需要提供。 – Nitesh
請不要更正問題中的代碼。如果你刪除了你的錯誤,我們的答案看起來很奇怪。如果您有關於您的代碼的新問題,請提出一個新問題。現在要求和回答這個問題。 – TLP
這是我的錯。真對不起。下次不會發生 – Nitesh