因为要给测试部门换bugzilla,但是原生的不符合我的需求,得改一下。看了一圈发现得先把perl稍微了解一下才能走下一步,看了两天。其实我也不是很明白,中文电子书看了一半然后又去看英文原文(所以有些概念我不知道怎么翻译准确,只能将就了,意思到了即可,有些概念理解上肯定是错的,但是我根据我自己的理解写了几个例子都能得到我想要的结果,所以应该大概没有太大偏差吧- -,还有看了两天的我发现我真的没有办法用语言去描述perl里的一些概念,只可意会不可言传,我只想说@$& <-代表了我的心情,某种意义上的中文里的上海话)
perl的数据类型大概
标量
$a = "a"
列表
@a=("a")
或者($a) =("a")
取值 $a[0]
哈希
%a =("a"=>1,
"b"=>2)
取值$a{"a"}
子程序
sub a {} 如果定义传参默认传给@_
匿名数组(对象中的引用类型)
$a =[1,2,3]
$$a[0]
匿名哈希(对象中的引用类型)
$a ={"a"=>1,"b"=>2}
取值 $a ->{"a"}
2 引用的概念
$a =\@_
$a =\%a
$a =\&a
以下的例子感受一下
#!/user/bin/perl
@a=(1,2,3);print $a[0];
$a=[1,2,3];
print $$a[1];
$a={'a'=>1,'b'=>2};
print $a->{'a'};
print $$a{'a'};
%a = ('a'=>1,'b'=>2,'c'=>3);
print $a{'a'};
%a = ("name"=>"tom");
sub sleep(){
my $self=\@_;
print $$self[0];
}
&sleep(%a);
$a = {"name"=>"tom"};
sub sleep (){
my ($a) = @_;
print $a->{"name"};
}
&sleep($a);