天天看点

变量赋值($ @ %)和范围变量声明(my,our,local)

1.变量赋值($ @ %)

     $: 是标量的变量

    @: 是数组的变量

    %: 是哈希的变量

2.范围变量声明(my,our,local)

创建私有变量(用 my),进行有选择地访问全局变量(用 our),和给全局变量提供临时的值(用 local): 

   my $nose;

   our $House;

   local $TV_channel;

如果列出多于一个变量,那么列表必须放在圆括弧里。就 my 和 our 而言,元素只能是简单的标量,数组或者散列变量。就 local 而言,其构造可以更宽松:你还可以局部化整个类型团和独立的变量或者数组和散列的片段: 

   my($nose, @eyes, %teeth);

   our ($House, @Autos, %Kids);

  local (*Spouse, $phone{HOME});

上面每种修饰词都给它们修饰的变量做出某种不同类型的“限制”。简单说:our 把名字限于一个范围,local 把值限于一个范围以及 my 把名字和值都限于一个范围。

它们也有一些区别:my 和local 把涉及的变量初始化为 undef 或 (),另一方面,our 不修改与之相联的全局变量的当前值。

http://blog.chinaunix.net/u1/59208/showart_464900.html