我正在制作一个 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)
}
我可能遗漏了一些明显的东西(我相信当我看到解决方案时我会踢自己),所以任何帮助表示赞赏!我想要这个,以便模块的其余部分可以使用变量(不改变),因为有些条件依赖于它们的值。