任何人都可以解释一下重要性以及如何在 perl 中使用 bless。 我在 bless 上阅读了很多关于堆栈溢出的线程,但它们并不清楚。
最佳答案
这是一种让 Perl 将包视为面向对象的类,并将受祝福的对象视为这些类的实例的方法。
祝福引用标记它,以便解释器知道它与哪个包相关联。例如,如果您这样写:
$x = {}; bless $x, "somepackage";
然后你可以稍后写:
$x->method(1, 2, 3);
解释器会将其视为:
somepackage::method($x, 1, 2, 3);
这是一个真正简单的例子。在名为 MyClass.pm 的文件中创建一个类:
package MyClass;
sub new {
my ($class_name) = @_;
my $new_instance = {};
bless $new_instance, $class_name;
return $new_instance;
}
sub set {
my ($self, $name, $value) = @_;
$self->{$name} = $value;
}
sub get {
my ($self, $name) = @_;
return $self->{$name};
}
现在您可以在代码中使用该类了:
import MyClass;
my $instance = MyClass->new; # Same as MyClass::new("MyClass")
$instance->set('age', 30); # Same as MyClass::set($instance, 'age', 30)
print $instance->get('age'); # Same as MyClass::get($instance, 'age')
箭头运算符,结合 bless 如何将引用绑定(bind)到包名称,为您提供了很好的面向对象语法。
关于perl - 如何在 Perl 中使用 Bless 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17212597/