+ -
当前位置:首页 → 问答吧 → my变量声明的问题

my变量声明的问题

时间:2011-01-01

来源:互联网

#!/usr/bin/perl -w
package test;
sub new1 {
my ($one) = @_;
   my $name = $one->{"name"};
   print "is $name \n" ;
}

sub m1 {
   my ($obj) = { "name" => "baby" };
   bless($obj, "test");
   $obj->new1();
}
m1();

这里的($one)加了括号和不加括号有什么区别??
$one不加括号就提示Use of uninitialized value in concatenation (.) or string,并且变量传不进来。
加上()括号就正常了。

哪位高手回答下为什么会这样?

作者: sai9924   发布时间: 2011-01-01

  1. my ($one)
复制代码
环境中$one处于一个列表环境,他会取@_的第一个元素
  1. my $one
复制代码
环境中 $one处于标量环境,他会计算@_中元素的个数,然后将其传给$one

作者: vinian   发布时间: 2011-01-01

热门下载

更多