CuTTer (icutter@mail.ru)

Perl для перцев

Xakep, номер #020, стр. 020-042-2


Теперь изучим, как работать с переменными, так как это очень важно для дальнейшего изучения. Вот код программы, который тебе поможет понять синтаксис.

#!/usr/bin/perl

$i=12;

$i++;

print "$i\n";

$i--;

print "$i\n";

$i+=2;

print "$i\n";

$i*=2;

print "$i\n";

После запуска программы ты должен увидеть это:

13

12

14

28

Синтаксис точно такой же, как и в C++; если ты раньше его изучал (делать было больше не фига? :), то тебе будет очень легко разобраться в Perl'е. Для понятности скажу, что команда $i++ равносильна $i=$i+1, а $i*=2 - то же самое, что и $i=$i*2.

Для ввода данных в Perl используется конструкция , которая в данном случае получает одну строку введенных данных. Эти данные мы присваиваем переменной $name, а потом выводим приветствие. Допустим, что у нас есть особенное имя, у которого должно быть собственное приветствие, пусть особенное имя будет Рома. Ему мы будем говорить: "Йоу! Кого я вижу!". Вот что получится:

#!/usr/bin/perl

print "Как тебя зовут? ";

$name=;

chomp ($name);

if ($name eq "Рома") {print "Йоу! Кого я вижу!\n";}

else {print "Здравствуйте, $name\n";}

Здесь появляется новая команда chomp. Она удаляет последний символ у переменной, если он является символом завершения строки (\n).

Теперь о ветви операций if-then-else. Оператор if (если) выбирает, какой блок операторов выполняется (блок операторов заключен между фигурными скобками). Если выражение дает результат значение "истина", то выполняется первый блок, в противном случае (выражение else) выполняется второй блок. У нас выражением является $name eq "Рома". Эти две строки сравниваются оператором eq. Если они равны, то результатом будет "истина". Еще есть выражение ne, оно полностью противоположно eq. Но эти выражения созданы только для символьных переменных, для числовых существуют свои:

> - дает "истина", когда первая переменная больше второй;

>= - "истина", когда первая переменная больше или равна второй;

< - "истина", когда первая переменная меньше второй;

<= - "истина", когда первая переменная меньше или равна второй;

!= - "истина", когда первая переменная не равна второй;

== - "истина", когда вторая переменная равна первой.

Также существует оператор not, он возвращает "истина", если сравниваемое условие ложь. Чтоб понять, напишем небольшую прогу

#!/usr/bin/perl

$a=3;

$b=4;

$c=3;

if ($a<$b) {print "1";}

Назад на стр. 020-042-1  Содержание  Вперед на стр. 020-042-3