Последовательность простых предложений, ограниченная функциональными ограничителями, называется блоком. В Perl это может быть целый файл, последовательность предложений в операторе eval{} или чаще всего это множество простых предложений, ограниченных круглыми скобками '{}'.

Существуют следующие виды сложных предложений:

Обратите внимание, что сложные предложения описаны в термах блоков, а не предложений, как в языках C или Pascal. Поэтому необходимо всегда использовать круглые скобки для обозначения блока.

if (EXPR) BLOCK - Вычисляется логическое выражение EXPR и если true блок выполняется.
Пример:

	$var =1;
	if ($var == 1)
	   { print $var,"
";
	   }
Результат: 1

if (EXPR) BLOCK else BLOCK2 - Если EXPR=true выполняется BLOCK иначе BLOCK2.
Пример:

	$var =2;
	if ($var == 1)
	   { print "$var = 1
";
	   }
	else
	   { print "$var не равно 1
";
	   }
Результат: $var не равно 1

if (EXPR1) BLOCK1 elsif (EXPR2) BLOCK2 ... else BLOCK - Если EXPR1=true выполняется BLOCK1 иначе если EXPR2=true выполняется BLOCK2 иначе ... иначе BLOCK.
Пример:

	$var = 1;
	if ($var == 0)
	   { print "$var = 0
";
	   }
	elsif ($var == 1)
	   { print "$var = 1
";
	   }
	else
	   { print "Не известное $var
";
	   }
Результат: $var = 1