1. 散列片断,如果在花括号中提供了多键,便会返回与那些键相对应的值,结果生成的列表会被当作一个数组对待。所以无论是散列片断还是数组片断,都要采用@符号。
2. 应用于散列的函数:
Ø Keys函数可返回一个列表,其中包含了散列内的所有键值。
Ø Values函数也能返回一个列表,其中包含了散列中的所有值。
Ø Each函数每次调用只返回一个键值对,并把这个键值对变成一个列表。在列表中,第一个元素是键,第二个元素是值。Each能自动跟踪其在散列中的位置,所以,每次调用该函数时,返回的都是一个新的键值对。一旦没有更多的键值对,就会返回undef值。如果有开始新的循环,那么下次将会从头开始。无论keys还是values函数
Ø 在散列中使用reverse函数时,散列的键和值会发生对调,但要在键值在所有散列中是唯一的。
Ø Delete函数从散列中删除一个元素。
Ø 检测一个变量是否存在使用函数exists。
Ø 判断一个变量是否已被赋值使用defined函数。
Ø 一个元素从未被创建过,可以认为是“不存在”;如果一个元素已经被创建,但却从未给它赋一个值,那么可认为它是“未定义”。
3. Foreach循环控制
Foreach 控制变量 (列表){
语句
}
4. 特殊变量$_
特殊变量$_是许多Perl函数的默认参数,也是许多Perl控制结构的默认控制变量。
5. Grep和map
Grep函数可在一个列表中查找,并创建一个全新的列表,其中只包含符合指定条件的元素。注意grep要求同时指定一个条件表达式以及一个列表作为自己的参数。
Newlist = grep ( 条件表达式,列表);
利用map函数,可以创建一个列表,其中包含的每一个元素都是某个函数作用于指定列表中每个元素后的产物。
Newlist = map ( 函数,列表 );
6. 当处于一个标量使用场合,数组返回数组的长度。例如:
$mean = $total / @array;
7. Next语句:
假如在while,until,for或foreach循环结构中执行next语句,会直接跳过在那个结构中剩下的语句,并开始循环的下一次循环。在while和until结构中,执行next语句之后,会紧接着检测循环是否应继续执行下去的条件。而在for结构中,首先会执行自增表达式,在对循环继续条件进行检测。在foreach结构中,控制变量会被设成列表中的下一个元素。
8. Last语句
在while,until,for或foreach结构中执行last语句,会造成立即退出当前结构。
9. Redo语句
在while,until,for或foreach结构中使用redo语句,会马上返回循环主体的第一条语句,而且不会对循环条件进行检测。比如,用在需要让当前循环从头再来一遍。
例如:
#!/usr/bin/perl
$number=1;
while ( $number <= 5 ) {
if ( $number <= 10 ) {
print "$number";
++$number;
redo;
}
}
一旦执行程序中的redo语句,程序控制便会自while语句中的{处继续;且不会对循环是否继续的条件进行检测。所以,上面程序的输出结果就是1到10,而不是1到5。
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>