我正在学习Perl中级课程。现在我正在学习有关类对象引用的内容。其中他们提供了一个包。
{
package Barn;
sub new { bless [], shift }
sub add { push @{ +shift }, shift }
sub contents { @{ +shift } }
sub DESTROY {
my $self = shift;
print "$self is being destroyed...\n";
for ( $self->contents ) {
print ' ', $_->name, " goes homeless.\n";
}
}
}
对于加号和位移运算符的工作,我还不理解。在文章中他们说,加号就像一个裸词,会被解释为一个软引用:@{"shift"}
你能否清楚地解释一下使用加号和位移运算符的工作原理?
shift
运算符并使用其返回值。 - Borodin+
防止shift
成为一个裸字。 - Brad Gilbert+
会使解析器有所不同,并且你发布的其余内容都会随之发生。你发布的几乎让人觉得这是个错误或其他什么原因。 - Brad Gilbert