Владимир Маслов - Введение в Perl
- Название:Введение в Perl
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Владимир Маслов - Введение в Perl краткое содержание
В книге приводятся начальные сведения по новому языку программирования Перл.
Данный язык получил широкое распространение в связи с развитием компьютерной сети Интернет. Все примеры в книге проверены для Перл версии 5.003 операционной системы Unix FreeBSD 2.1.0.
Для программистов, системных администраторов и пользователей компьютеров.
Введение в Perl - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Вместо слова foreachможно писать просто for– это слова синонимы.
Пример:
@месяц = («январь»,"февраль","март"); # Создали массив
foreach $i (@месяц)
{
print $i," "; # Печать $i
}
Результат: январь февраль март
Пример:
@месяц = («январь»,"февраль","март"); # Создали массив
foreach $i (@месяц)
{
$i = uc($i); # Перевели в верхний регистр
}
print @месяц;
Результат: ЯНВАРЬФЕВРАЛЬМАРТ
Пример:
for $i (3,5,7)
{
print "$i ";
}
Результат: 3 5 7
Блок не зависимо от того имеет он метку или нет семантически представляет собой цикл который выполняется один раз. Поэтому действие опраторов цикла next, last, redo– аналогично описанному выше. Блоки удобны для построения switch(переключатель) структур.
В Перл нет специального оператора switch подобного языку С поэтому вы сами можете создавать удобные для вас конструкции.
Опыт автора показывает что для простоты написания лучше всего подходит конструкция вида if ... elsif ... else ...хотя можно сочинить и нечто подобное:
SWITCH:
{
if ($i ==1 ) { .....; last SWITCH; }
if ($i ==2 ) { .....; last SWITCH; }
if ($i ==3 ) { .....; last SWITCH; }
$default = 13;
}
Выбирайте сами по своему вкусу.
В Перл существует оператор gotoхотя где , как и когда его применять как говорил Ходжа Насредин «Тонкий филосовский вопрос».
Для начинающих программистов которым от так «нужен» я бы вообще посоветовал «забыть» о его существовании. Однако при создании больших производственных задач на последнем этапе особенно при отработке «отвальных» ошибочных ситуаций конечно gotoнужен.
В Перл реализовано три формы goto. goto– метка, goto– выражение и goto– подпрограмма.
goto– метка выполняет непосредственный переход на указанную метку.
goto– выражение – Вычисляет имя метки и делает соответсвующий переход.
Например если мы хотим сделать переход на одну из трех меток " M1: ", " M2: " или " M3: " в зависимости от значений переменной $i равной 0, 1 или 2 то это лучше сделать следующим образом:
goto(«M1», «M2», «M3»)[ $i ];
здесь $i используется как индекс массива указанного непосредственно в выражении.
gotoподпрограмма – довольно редкий случай т.к. всегда проще и надежней вызвать подпрограмму «естественным» образом.
В Перл реализован очень удобный механизм для написания документации в момент создания программы. Для этого применяются специальные POD операторы.
Если в теле программы интерпретатор встречает оператор начинающийся с символа '=' например:
= head Набор стандартных процедур
то пропускается все до слова ' =cut '. Это удобно для включения длинных на несколько строк или страниц комментариев. Затем
с помощью специальной программы podможно отделить текст документации от текста программы.
Переменные
В Перл существует три типа структур данных: скаляры, массивы скаляров и хеши ( hashes) – ассоциативные массивы скаляров. Обычно элементы массивов индексируются целыми числами, первый элемент – нулевой. Отрицательное значение индекса обозначает номер позиции элемента с конца. Хеши индексируются строками символов.
Имена скалярных переменных всегда начинаются с символа '$' даже когда обозначают элемент массива.
Пример:
$var1 # Простой скаляр 'var1'
$var1[0] # Первый элемент массива 'var1'
$var1{'first'} # Элемент с индексом 'first'
В случае использования имени массива «целиком» или его «среза» перед именем массива ставится символ '@'.
Пример:
@var1 # Все элементы массива var1 ( $var1[0], $var1[1], ... $var1[n])
@var1[1,3,10] # Элементы $var1[1], $var1[3], $var1[10]
@var1{'first','last'} # то же что и ( $var1{'first'}, $var1{'last'} )
Хеш «целиком» начинается с символа '%'.
Пример:
%var, %key, %years
Имена подпрограмм начинаются символом ' &' если из контекста не видно
что это подпрограмма.
Пример:
&sub1, &test_prog, test(12)
Имена таблиц символов всегда начинаются символом ' *'.
Каждый тип переменных имеет свою область памяти поэтому $var1и $var1[0]совершенно разные переменные, хотя $var1[0]часть массива @var1. Так же @var1и %var1– разные массивы переменных.
Имена переменных могут содержать любые буквенно-цифровы символы за исключением пробела и табуляции. Эти смволы используются в качестве разделителей.
Большие и малые буквы различаются поэтому $var1и $Var1– разные переменные. В Перл по умолчанию имена меток и указателей файлов пишут большими буквами.
Большое значение для правильного употребления встроенных функций имеет контекст использования результата этих функций т.к. в противном случае они возвращают совершенно «непонятный» результат.
В Перл имеется два главных контекста: скалярный и список ( list ).
Проще говоря если в левой части выражения имеется ввиду одно единственное значение – то это скалярный контекст. Если множество значений – список.
Пример:
$var1 = <>; # Прочитать одну строку файла
@var1 = <>; # Прочитать все строки файла в массив @var1
$var1 = (1,2,3); # $var = 3 – количество элементов
@var1 = (1,2,3); # Создание массива @var1 с элементами 1,2,3
Все данные в Перл это скаляры, массивы скаляров и хеши скаляров.
Скалярные переменные могут содержать числа, строки и ссылки.
Преобразование числа – строки происходит автоматически по умолчанию.
Скаляр может иметь только одно единственное значение, хотя это может быть ссылка на массив скаляров. Так – как Перл сам преобразовывает числа в строки и наоборот то программисту нет необходимости думать о том что возвращает функция.
В Перл не существует типов «строка» или «число» или «файл» или что то еще.
Это контекстно зависимый полиморфный язык для работы с текстами.
Скаляр имеет логическое значение " TRUE" (истина) если это не нулевая строка или число не равное 0.
В Перл существует два типа нулевых ( null) скаляров – определенные ( defined) и не определенные ( undefined). Не определенное значение возвращается когда что-то не существует. Например не известная переменная, конец файла или ошибка. С помощью функции defined()вы можете заранее обнаружить подобное состояние.
Читать дальшеИнтервал:
Закладка: