PERL用@和$来区分数组变量和简单变量
在PERL中,当一个自定义函数接收参数时,它都放在数组@_中,$_[0],$_[1]就是从该数组中去取参数。@_就是一个普通数组
1.联接且赋值(类似+=): .=
例子:
$a = "be";
$a .=
"witched"; # $a is now "bewitched"
2.数组变量以字符"@"打头,第一个元素下标为0
例子 @array
= (1, 2, 3)
3./def/即模式def
4.
匹配指定数目的字符
字符对{}指定所匹配字符的出现次数。如:/de{1,3}f/匹配def,deef和deeef;/de{3}f/匹配deeef;/de{3,}f/匹配不少于3个e在d和f之间;/de{0,3}f/匹配不多于3个e在d和f之间。
5.foreach
$word (@words) {
if ($word eq "the") {
print ("found the word
'the'\n");
}
}
注:
(1)此处的循环变量localvar是个局部变量,如果在此之前它已有值,则循环后仍恢复该值。
(2)在循环中改变局部变量,相应的数组变量也会改变,如:
@list
= (1, 2, 3, 4, 5);
foreach $temp (@list) {
if ($temp == 2)
{
$temp = 20;
}
}
此时@list已变成了(1, 20, 3, 4,
5)。
6.子程序即执行一个特殊任务的一段分离的代码,它可以使减少重复代码且使程序易读。PERL中,子程序可以出现在程序的任何地方。定义方法为:
sub
subroutine{
statements;
}
7.my和local。其区别是:my定义的变量只在该子程序中存在;而local定义的变量不存在于主程序中,但存在于该子程序和该子程序调用的子程序中(在PERL4中没有my)。定义时可以给其赋值,如:
my($scalar)
= 43;
local(@array) = (1, 2, 3);
8.
五、子程序参数传递1、形式 &sub1(&number1, $number2, $nubmer3);
...
sub
sub1{
my($number1, $number2, $number3) =
@_;
...
}
参数为数组时,子程序只将它赋给一个数组变量。如
sub twolists {
my
(@list1, @list2) = @_;
}
第四章和第三章(
http://man.ddvip.com/web/perl/perl4.htm)