Chinaunix
标题:
@ARGV的类型?
[打印本页]
作者:
gosapphire
时间:
2011-03-30 15:34
标题:
@ARGV的类型?
写了段代码:
调用
test.pl
#!/usr/bin/perl
use strict;
use warnings;
use Xxx::Commander;
my $cmd = Commander->new();
$cmd->procArg(@ARGV);
复制代码
Commander.pm
package Commander;
use strict;
use warnings;
sub new
{
my $self = {};
bless($self);
return $self;
}
sub procArg
{
my(@Args) = @_;
foreach my $arg ( @Args )
{
print $arg, "\n";
}
}
1;
复制代码
想问一下,"test.pl aaa bbb" 为什么打印出来的是:
Commander=HASH(0x124724)
aaa
bbb
作者:
gosapphire
时间:
2011-03-30 15:57
本帖最后由 gosapphire 于 2011-03-30 15:59 编辑
自问自答.....
试了一下下面的code:
#!/usr/bin/perl
use strict;
use warnings;
use Xxx::Commander;
my $cmd = Commander->new();
$cmd->procArg(@ARGV);
my $cmd1 = Commander->new();
$cmd1->procArg(@ARGV);
复制代码
"test.pl aaa bbb" 打印出来的是:
Commander=HASH([b]0x124724[/b])
aaa
bbb
Commander=HASH([b]0x146a28[/b])
aaa
bbb
复制代码
又看了看perl oo的doc,
猜测在package里面的subroutine
@_的第一个元素应该是个类似this指针的东西,指向一块obj。
不知道有没有兄弟可以给个官方的解释?
作者:
yybmsrs
时间:
2011-03-30 16:32
是这个意思
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2