perl中标量是用美元$表示的,用$表示的不一定是标量。美元$还可以代表(指针)引用。有了引用就能轻松实现和管理各种复杂数据结构。
my $arr_ref=[1,2,3]
my @arr=(1,2,3);my $arr_ref=\@arr;
print $arr_ref->[0]; #获得数组中第一个元素print @$arr_ref; #获得整个数组
hash引用
my $hash={key1=>val1,key2=>val2}
my %hash=(key1=>val1,key2=>val2);
print $hash->{}; #获得key1 对应的值print keys %{$hash}; #获得hash的所有的key
函数引用
my $fun_ref={print "hello, ",shift;};
{print "hello, "+shift;}my $fun_ref=\&hello;
$fun_ref->("larry") # 输出hello,larry
my $string="hello,world\n";my $string_ref=\$string; #标量的引用 指针 地址print $string,"\n";&change($string_ref); # 按址传递print $string,"\n";{my $str_ref=shift;${$str_ref}="hello, China";}
open FH,">succeful.txt";open FF,">error.txt";{my $filehandle_ref=shift;my $message=shift;print $filehandle_ref,$message;}write(\*FH,"HAPPY");write(\*FF,'BAD');
$obj->method(); #调用对象里的方法$obj->properties; #获得对象里属性
```
引用,指针 ,地址 这3个概念在是一样的。
软件推荐: ATOM编辑器,非常好用,支持perl6语法高亮,代码运行。