Управляющие структуры.
{
1_operator;
2_operator;
3_operator;
...
last_operator; # with or witout ";"
}
if(выражение) {
op_1;
op_2;
op_3;
} else {
op_1;
op_2;
op_3;
}
Управляющее выражение вычисляется как строковая величина в скалярном
контексте (если это уже строка, то ничего не изменится, если это число,
то оно преобразуется в строку). Если строка пуста, либо состоит из одного
символа "0", то значение выражения - ложь. Все остальное - "истина".
Пример:
print "how old are you? ";
$a = <STDIN> ;
chomp($a);
if($a < 18) {
print "So, you're not old enougt to vote, eh?\n";
} else {
print "Old enough! Cool! So go vote!\n";
$voter++;
}
Оператор unless:
print "how old are you? ";
$a = <STDIN> ;
chomp($a);
unless($a < 18) {
print "Old enough! Cool! So go vote!\n";
$voter++;
}
if(выражение) {
op_1;
op_2;
op_3;
} elsif(выражение 2) {
op_1;
op_2;
op_3;
} else {
op_1;
op_2;
op_3;
}
while(выражение) {
op_1;
op_2;
op_3;
}
until(выражение) {
op_1;
op_2;
op_3;
}
do {
op_1;
op_2;
op_3;
} while выражение;
Пример:
$stops = 0;
do {
$stops++;
print "Next stop? ";
chomp($location = <STDIN>);
} until $stops > 5 || $location eq 'home';
for($i = 1; $i <= 10; $i++) {
print "$i ";
}
Этот оператор получает список значений и присваивает их по очереди
скалярной переменной, выполняя с каждым последующим присваиванием
блок кода
foreach $i (@список) {
op_1;
op_2;
op_3;
}
Замечание:Скалярная переменная $i - локальна для данного
цикла.
Пример:
@a = qw(one two three four five);
foreach $b (reverse @a) {
print $b;
}
Имя скалярной переменной можно опустить. В этом случае, Вы указали имя
переменной $_.
@a = qw(one two three four five);
foreach (reverse @a) {
print ;
}
Используемая в цикле скалярная переменная представляет собой псевдоним для каждой
переменной списка, а не просто копию ее значения. Изменяя скалярную
переменную Вы изменяете и конкретный элемент списка:
@a = (3, 5, 7, 9);
foreach $one (@a) {
$one *= 3;
}
# @one = (9, 15, 21, 27);
|