next - подобен continue в С. Переходит к началу текущего цикла т.е. повторяет итерацию.

Пример:

	M1:
	while ($i < 6)
	    {
	    ++$i;	# Увеличиваем счетчик на 1
	    next M1 if $i < 3; # Переходим в начало
		 если $i < 3
	    ++$i;	# иначе увеличиваем счетчик еще раз на 1
	    }
	continue
	    {
	    print "$i "; # Печатаем $i
	    }
Результат: 1 2 4 6

last - подобен оператору break в языке С. Немедленно прерывает цикл. Блок continue пропускается.

Пример:

        M1:
        while ($i < 6)
            {
            ++$i;       # Увеличиваем счетчик на 1
            last M1 if $i > 3; # Выход из цикла 
			                   если $i > 3
            ++$i;       # иначе увеличиваем 
			               счетчик еще раз на 1
            }
continue {
            print "$i "; # Печатаем $i
}
Результат: 2 4

redo - начать новый цикл не вычисляя EXPR и не выполняя continue блок.

Пример:

        M1:
        while ($i < 6)
            {
            ++$i;       # Увеличиваем счетчик на 1
            redo M1 if $i == 3; # Далее пропустить
			                       для $i = 3
            ++$i;       # иначе увеличиваем 
			                  счетчик еще раз на 1
            }
continue {
            print "$i "; # Печатаем $i
}
Результат: 2 5 7