Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor
Краткий экскурс в Perl-программирование
The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Каталог документации / Раздел "Perl" (Архив | Для печати)

Краткий экскурс в Perl-программирование

Оригинал: http://kamensk.net.ru/forb/
Автор: Докучаев Дмитрий


[Пред] [1] [2] [3] [4] [5] [След]
  • Вступление

  • Откуда появился язык Perl и как он расшифровывается? Перед тем как осваивать язык программирования нужно знать хотя бы общие сведения о нём.

    Perl создал некий Ларри Уолл. Perl - аббревиатура, расшифровывается как Practical Extraction and Report Language (практический язык извлечений и отчётов).
    Данная статья не научит вас в совершенстве владеть Perl`ом. Для этого нужен многолетний опыт и огромные знания. Тут я отражу лишь общие сведения по теме, чтобы вы могли оттолкнуться от них и изучать язык более углублённо.
    Ещё следует добавить, что в этой статье нет изучения дополнительных модулей для Perl. Информацию о них ищите в главе "Сайты".
    Если у вас ещё не пропало желание читать статью, то вперёд!



  • Структура языка

  • Все Perl-программы должны начинаться со строки, указывающей путь к Perl-интерпретатору. Эта строка обычно выглядит так:
    #!/usr/bin/perl
    Эту строку желательно использовать как под Linux, так и под Windows (вдруг скрипт придётся на сервер заливать). Без данной строки программа не будет выполняться.

    В структуру Perl`а входят: переменные, операторы, специальные символы. Все переменные начинаются с символа "$" - как символьные так и числовые. Задаются переменные следующим образом:
    $a=10;   # Числовая переменная
    $b="simvol";    # Символьная переменная
    
    Как численные, так и символьные переменные являются скалярными переменными. Рассмотрим действия, которые можно производить над скалярами:

    Операция Описание Примеры
    + . / % Арифметические действия
    print 2*7+4/(8%3);
    print int(127/15); #Целая часть
    
    ** Возведение в степень
    print 2**16;
    ++ -- Инкремент и декремент
    $i++; # Увеличить переменную $i на 1
    & | ^ ~ << >> Побитовые операции
    $x=3; $y=4; print $x|$y;
    print $x&$y;
    == != < > <= >= <=> Числовые операции сравнения
    if ($x==9) { print "Ok!"; }
    eq ne lt gt le ge cmp Строковые операции сравнения
    if ($test eq 'ok') { print "All right!"; }
    || && ! Логические операции
    if (($test eq 'ok') || ($x==9) { print "All right!"; }
    , Последовательное вычисление
    $x=10,$y=20;
    . Склеивание
    $url='http://'.'rambler.ru';
    x Повторение
    print '1234'x3; # Получится '123412341234'
    =~ !~ Сопоставление с шаблоном
    if ($url=~/http/) { print "HTTP"; }
    = =+ =- *= /= %= **= |= &= ^= ~= <<= >>= .= x= Присваивание
    $x+=$y; # Прибавит к переменной $x переменную $y
    

    Стоит отметить разницу между апострофами и кавычками, использующихся в присваивании. В кавычках осуществляется подстановка переменных и спец. символов, а в апострофах нет. Чтобы игнорировать подстановку в кавычках, следует перед спец. символом поставить слеш ( \ ).
    $x='perem1';
    print 'Var = $x'; или print "Var = \$x"; # Выведет 'Var = $x'
    print "Var = $x"; # Выведет 'Var = perem1'
    

  • Массивы

  • Массивы начинаются с символа @ и конструируются следующим образом:
    @array1=(1,2,3,4,5);
    @array2=(30,40,@array1); # Добавление к @array2 всех элементов @array1
    @array3=($perem1,$perem2,$perem3);
    
    Обращение к элементам массива осуществляется так:
    @array1=(1..20);
    @array1[2,10,20]=(20,3,4); # Замена элементов под номерами 2 10 и 20 числами 20 3 и 4
    @array1[20,1]=@array1[1,20] # Меняет элементы местами
    
    Обращаться к отдельному элементу массива (скаляру) можно в форме $имя_массива[индекс].
    Для массивов существуют также такие функции как push(), pop(), shift(), unshift().
    push(@array1,$perem1); # Добавляет $perem1 в конец @array
    unshift(@array,$perem1); # Добавляет $perem1 в начало @array
    $perem1=pop(@array1); # Присваивает $perem1 последнему элементу массива @array
    $perem1=shift(@array); # Тоже самое с первым элементом
    

  • Хэши

    Хэш - массив, состоящих из пар "Ключ-значение". Доступ к каждому значению записи осуществляется по ассоциированному с ним ключу. Хэш выглядит так: %имя_хэша. Доступ к оттедльным его элементам: $имя_хэша{выражение}.
    Кострукция хэша выглядит следующим образом:
    $hash{1}="key1";
    $hash{'myset'}="www.rambler.ru";
    $hash{1+2}=50;
    
    %hash(1,20,2,100); # Чётное кол-во элементов обязательно! 
    # Запись аналогична $hash{1}=20; $hash{2}=100;
    
    Удаление элементов из хэша производится с помощью операции delete:
    delete($hash{1});
    Выделить отдельные ключи и значения хэша можно при помощи функций keys() и values() соответственно:
    %hash(1,20,2,100,3,'test');
    @key=keys(%hash); # @key=(1,2,3);
    @value=values(%hash) # @value=(20,100,'test');
    


    [Пред] [1] [2] [3] [4] [5] [След]