@rock = qw/ bedrock slate lava /;
foreach $rock (@rock){
something;
}
foreach中$rock为控制变量,@rock为列表元素
每次循环迭代时,控制变量都会从列表中取得新的值。
控制变量并不是列表元素的复制品——实际上,它就是列表元素本身。也就是说,假如在循环中修改了控制变量的值,也就同时修改了这个列表元素,但是,当循环结束后,控制变量仍然是循环执行之前的值,Perl会自动存储foreach循环的控制变量并在循环结束之后还原。
<STDIN>在标量上下文中会返回输入数据的下一行;
在列表上下文中,则会返回所有剩下得行,直到文件结尾为止。返回的每一行都会成为列表中的元素。