
基本代码块
|
95
{
my $n = 2;
my $m = 3;
put 'The sum is ';
put $n + $m;
}
Block
内的代码不会改变这个
Block
外的同名变量。下面的例子中,在
Block
之外(外
部作用域)有一些变量。裸
Block
中重用了同样的变量名:
my $n = 2;
my $m = 3;
{
my $n = 'Hamadryas';
my $m = 'perlicus';
put "$n $m"; # Hamadryas perlicus
}
put "n $n m $m"; # n 2 m 3
通过限定作用域,会让你如释重负,当你选择只在一小段代码中使用的变量名时,
不再需要知道整个程序中的每一个变量名。这样一来,你可以选择对当前任务最有
意义的名字,而不用担心代码的其他部分也使用了同样的名字。
5.1.2
控制结构
裸
Block
没有相应的控制关键字。可以在一个
Block
前面加
loop
,反复地调用,永
远执行下去:
my $n = 0;
loop {
put $n++;
}
这个
loop
控制了如何执行这个
Block
。由于你没有特别说明,所以它会一直循环下去,
直到永远。
在你的职业生涯中,有时可能会不小心创建一个无限循环。你可能坐在那
里看着屏幕,心里奇怪为什么什么也没有发生。在这种情况下,可以用
Control-C
中断(停止)你的程序。