Ветвление позволяет выполнять тот или иной кусок кода в зависимости от кого-то условия. Т.е. если переменная $x равна 10 вывести её на экран, а если меньше 10, то увеличить её на еденицу. В Perl ветвление обеспечивают операторы if, unless, и так называемый "условный оператор".
if - это даже не просто оператор, это конструкция вида if-elsif-else. Любой элемент этой конструкции (кроме первого), можно опустить. Действует это так, если условия в скобках оператора if истинно, то выполняется блок операторов идущих в фигурных скобках, если же условие ложно, то выполняется проверка в скобках elsif, если и оно ложно, то выполняется блок операторов в фигурных скобках оператора else. Примеры:
#!/usr/bin/perl -w
for($x=0; $x<10; $x++) {
if($x==5) {
print $x;
}
}
Данный пример выведит только цифру 5. Но в нём не предусмотрены действия на случай если $x не равно пяти. Добавим это
#!/usr/bin/perl -w
for($x=0; $x<10; $x++) {
if($x==5) {
print "$x\n";
} else {
print "Счётчик цикла не равен пяти\n";
}
}

А если надо проверить не равен ли он ещё и 7? Можно запихать внутрь этого if ещё одну проверку, но правильнее сделать так:
#!/usr/bin/perl -w
for($x=0; $x<10; $x++) {
if($x==5) {
print "$x\n";
} elsif ($x==7) {
print "$x\n";
} else {
print "Счётчик цикла не равен ни пяти, ни семи :(\n";
}
}
Этих elsif'оф можно поставить немеряное кол-во:
#!/usr/bin/perl -w
for($x=1; $x<13; $x++) {
if($x==1) {
print "$x\n";
} elsif($x==2) {
print "$x\n";
} elsif($x==3) {
print "$x\n";
} elsif($x==4) {
print "$x\n";
} elsif($x==5) {
print "$x\n";
} elsif($x==6) {
print "$x\n";
} elsif($x==7) {
print "$x\n";
} elsif($x==8) {
print "$x\n";
} elsif($x==9) {
print "$x\n";
} else {
print "Я только до десяти считать умею... :(\n";
}
}
Громоздко, да? :)
unless аналогичен оператору if, но выполняет свой блок операторов, если условие в скобках ложно.
Условный оператор имеет вид "условие ? действие если истинно : действие если ложно". Выглядит это примерно так:
#!/usr/bin/perl -w
for($x=1; $x<13; $x++) {
$x==5?print "$x\n":print "Переменная не равна пяти\n";
}
Вот и всё. Надеюсь понятно объясняю :)