Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Perl / Для начинающих /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Операторы PERL - Программирование от RIN.RU
Операторы PERL



Логические операторы


Логические операторы анализируют булевы выражения и возвращают значения <истинно> или <ложно> в качестве результата. Perlобрабатывает операнды логических операций как булевы величины, т.е. как истинное или ложное значение.




Логические операторы языка Perl включают следующие:


  • || логическое ИЛИ

  • && логическое И


Perl всегда обрабатывает логические выражения слева направо. Кроме того. Perl всегда прекращает оценку, если уже выполненнойоценки достаточно, чтобы определить значение результата.


В дополнение к общим логическим операторам Perl поддерживает следующие дополнительные логические операторы:


  • ! - логическое отрицание

  • ?: - условная операция

  • , - последовательное выполнение


Оператор логического отрицания (!) заменяет значение булевой величины на противоположную. Так же как и в С, в языке Perl условный оператор (?:) использует три операнда. Выражение, использующее условный оператор, имеет следующую форму:


Condition ? true-result : false-result


Аналогично, следующее выражение использует условный оператор длятого, чтобы предоставить Бобу полный доступ, а всем остальным ограниченный:


$access = ($user eq "Bob" ? "Full" : "Limited");


Оператор последовательного выполнения <,> (также известный какоператор запятая) не является вполне логическим оператором, поскольку он не анализирует истинность своих операндов. Perl выполняет операнды оператора последовательного выполнения слева направо и возвращает значение самого правого операнда.


Следующий пример иллюстрирует использование оператора запятая в цикле for.


For ($i=0, $j=10; $i<10; $i++, $j-)
{
print i$," ",$j
}


Строковые операторы


Поскольку Perl представляет собой язык для обработки текста, неудивительно, что в него включены дополнительные операторы для работы со строками. Ниже перечисляются операторы обработки строк:


  • . конкатенация строк

  • х репликация

  • =~ сопоставление переменной с образцом

  • !~ то же, что и предыдущее, но с дополненным отрицанием результата


Первые два оператора легко иллюстрируются примером:


print "b" . "an" x 2 . "a"; # выведет "banana"


Как показано, это выражение использует конкатенацию строк иоператор репликации для того, чтобы напечатать строку <banana> . Два последних оператора используются для проверки того, включаетли строковый операнд заданный образец. Этот вопрос детально обсуждается в разделе Регулярные выражения.


Следующий пример иллюстрирует их использование:


$var = "banana";
print ($var =~ /ana/) ? TRUE : FALSE;


В этом случае оператор проверки вхождения в строку образца(=~) использовался для проверки того, входит ли образец ana в переменную $var. В данном случае выражение принимает значение <истинно>.


Операторы присваивания


Если вы знакомы с языком программирования С, то формы операторов присваивания языка Perl должны быть для вас совершенно знакомыми. Так же как и в С, эти операторы заставляют Perl выполнить специальные операции со значениями, которые появились с правой стороны оператора, и затем выполнить присваивание:


= += -= *= /= %= |= &=
^= ~= <<= >>= **= .= x=  

LVALUES В языке Perl, так же как и в С, lvalue представляет собой имя того, что стоит с левой стороны оператора присваивания. Таким образом, lvalue представляет собой целостность, которой может быть присвоено значение, например, lvalue может быть переменной. Например, скрипт Perl не может присвоить значение строке символов, наподобие выражения = 32, поскольку не является lvalue. Тем не менее, скрипт может присвоить значение переменной $Bob, например, следующим образом $Bob = 32, поскольку переменная $Bob является lvalue. В языке Perl любая целостность, которая может использоваться как lvalue, обычно таковой и является. Например, следующее выражение упаковывает (pack) и распаковывает (unpack) список значений, причем список переменных в первом случае и три скалярных во втором являются lvalues:


@color = ($r, $g, $b); # пакет цветов
($r, $g, $b) = @color; # распаковка цвета


Когда вы работаете со списками в языке Perl, оператор присваивания не обяза тельно относится ко всему списку. Скрипт можетприсваивать значения отдельным элементам списка, как показано ниже:


@items[2,4,7] = (100,200,300);


В этом случае оператор присваивает значение трем элементамсписка. Аналогичным образом следующее выражение распаковываетэлементы списка, присваивая значения двух первых элементов двумскалярным переменным, а остаток массива - списочной переменной:


($arg1,$arg2,@rest) = @ARGV; # можно смешать скаляры и массивы


<<<  НазадВперед  >>>
 1  2  3  4 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Операторы и приоритеты

Встроенные функции

Установка PERL

Использование отладчика PERL

Типы данных в PERL

Переменные

Конструкции языка PERL

Подпрограммы

Обработка строк

Обработка списков

Работа с массивами

Функции обработки ассоциативных массивов

Файловый ввод и вывод

Обработка бинарных данных

Работа с каталогами

Форматированный вывод

Регулярные выражения

CGI-скрипты при помощи PERL

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь