Управляющие структуры.
{
	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);
 |