[D]Perl目标对象中的shift,应该如何理解?
帮解释一下,下面package中的shift,应该如何理解?
-- Stone.pm -------------------------
package Stone;
sub new {
my $pkg = shift;
my $hash= {
name => shift,
weight => shift
};
bless $hash,$pkg;
}
1;
-- 调用 main.pl ----------------------
use Stone;
my $obj = Stone->new('石灰','100');
print $obj->{'name'};
----------
Double行动:
原帖分数:50
加分:50
[解决办法]
这里的shift默认参数是@_,相当于shift @_
[解决办法]
函数的输入参数,作为列表保存在@_ 列表中,你可以使用$_[0],$_[1],$_[n]去引用对应的调用参数;
在你的例子中 @_的内容就是 ('石灰','100')
[解决办法]
Perl 里的函数参数,保存在 @_中,用shift可以取出参数,这是Perl和其他语言的不同,需要自己取参数。
[解决办法]