我做了一個Perl模塊和我仍然得到認真處理的Perl如何與對象交易中的訪問Perl的對象特徵。 這是new
子,我寫了創建一個對象,我沒有問題,更新內容:如何從同一個包
sub new {
my $class = shift;
my ($self) = {
name => undef
};
bless($self, $class);
return $self;
}
sub get_name {
my $self = shift;
$self->{name} = 'Eve';
return $self->{name};
}
我可以使用對象很好,當我調用模塊,並從其他文件訪問,但我想使用模塊代碼中其他區域的對象中的數據。
所以我沒有問題,這樣做:
my $new_object = new ProgramTest; # ProgramTest being the module/package
my $name = get_name();
但我想用$self
元素中從未被外部腳本訪問的「模塊內部」的方法。所以我想有這樣的事情:
sub get_variables {
return (name); # I don't know how to get the name here
# (I plan to have other variables, too)
}
我可能失去了一些東西明顯(我敢肯定,我會踢自己,當我看到的解決方案),所以任何幫助表示讚賞! 我想要這樣的模塊的其餘部分可以使用變量(不改變),因爲有條件依賴於它們的值。
參見[如何使Perl模塊中的私有函數?(http://stackoverflow.com/questions/451521/how-do-i-make-private-functions-in-a-perl -module)。 – qqx
這實際上是非常有益的,解釋了爲什麼我總是看到'在一些地方_'使用的,而不是別人+1 – dgBP
另一件事學習Perl中的「新東西」是壞的:http://shadow.cat/blog/matt- s-trout /間接但還是致命的/還有很多其他好文章 –