Учебник по Perl

Данный справочник создан на основе материалов, находящихся на сайте Справочник Web-языков www.spravkaweb.ru
Дата создания справочника: 20.08.2004

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

Скачать обновленный справочник можно отсюда

Содержание:

  • Функции обработки строк и скаляров
  • Функции, связанные с регулярными выражениями
  • Числовые функции
  • Функции обработки массивов скаляров
  • Функции обработки списков
  • Функции обработки хеш-массивов
  • Функции ввода/вывода
  • Функции для работы с файлами и каталогами
  • Функции, относящиеся к управлению выполнением программы
  • Функции, относящиеся к области видимости переменных
  • Функции, относящиеся к модулям Perl
  • Функции, относящиеся к классам и объектно-ориентированным технологиям
  • Разные функции
  • Функции для работы с процессами и группами процессов
  • Низкоуровневые функции работы с сокетами
  • Функции для работы со временем и датой
  • Информация о пользователях и группах
  • Сетевая информация
  • Функции взаимодействия между процессами
  • Стандартные модули Perl
  • Специальные переменные
  • Функции обработки строк и скаляров

    chomp

    Удаляет из каждого строкового элемента списка замыкающий символ завершения записи, соответствующий значению переменной $/ (по умолчанию - символ новой строки "\n"). Возвращает общее количество удаленных символов. Список может состоять из одной переменной.
    chomp СПИСОК
    chomp     (эквивалентно chmod $_)

    chop

    Удаляет из каждого строкового элемента списка последний символ. Возвращаемое значение - удаленный символ из последнего элемента списка. Сисок может состоять из одной переменной.
    chop СПИСОК
    chop      (эквивалентно chop $_)

    chr

    Возвращает символ, код которого представлен числовым параметром.
    chr ЧИСЛО
    chr       (эквивалентно chr $_)

    crypt

    Шифрует ТЕКСТ с использованием заданного в параметре шифра. Обратной функции дешифровки не существует.
    crypt ТЕКСТ, ШИФР

    hex

    Интерпретирует строковое ВЫРАЖЕНИЕ как шестнадцатиричное число и вычисляет его десятичный эквивалент.
    hex ВЫРАЖЕНИЕ
    hex       (эквивалентно hex $_)

    index

    Возвращает позицию первого вхождения указанной подстроки в заданную строку или -1, если подстрока не найдена. Если задан параметр ПОЗИЦИЯ, то поиск подстроки осуществляется, начиная с заданной позиции в строке (0 - начало строки)
    index СТРОКА, ПОДСТРОКА[, ПОЗИЦИЯ]

    lc

    Преобразует все прописные буквы строкового параметра ВЫРАЖЕНИЕ в строчные и возвращает полученную строку. Использует текущие установки локализации, если используется use local.
    lc ВЫРАЖЕНИЕ
    lc        (эквивалентно lc $_)

    lcfirst

    Преобразует первый символ строкового параметра ВЫРАЖЕНИЕ в нижний регистр и возвращает полученную строку. Использует текущие установки локализации, если используется use local.
    lcfirst ВЫРАЖЕНИЕ
    lcfirst   (эквивалентно lcfirst $_)

    length

    Возвращает количество байтов в строке, являющейся значением параметра ВЫРАЖЕНИЕ.
    length ВЫРАЖЕНИЕ
    length    (эквивалентно length $_)

    oct

    Интерпретирует строковое ВЫРАЖЕНИЕ как восьмеричное число и вычисляет его десятичный эквивалент. Если строка начинается с символов "0x", то ее содержимое интерпретируется как шестнадцатиричное число.
    oct ВЫРАЖЕНИЕ
    oct       (эквивалентно oct $_)

    ord

    Возвращает числовой ASCII-код первого символа строки, являющейся значением параметра ВЫРАЖЕНИЕ.
    ord ВЫРАЖЕНИЕ
    ord       (эквивалентно ord $_)

    pack

    Упаковывает массив или список значений в двоичную структуру в соответствии с заданным шаблоном, представляющим собой последовательность символов, которые задают порядок и тип значений. Возвращает строку, содержащую полученную структуру.
    pack ШАБЛОН, СПИСОК

    reverse

    В списковом контексте возвращает список значений, состоящих из элементов заданного параметром СПИСОК списка; в скалярном контексте соединяет все элементы списка в одну строку и возвращает строку, состоящую из символов полученной строки, но в обратном порядке.
    reverse СПИСОК

    rindex
    Синтаксис :
    rindex STR, SUBSTR, POSITION

    Находит последнее, ограниченное справа позицией POSITION, вхождение подстроки SUBSTR в строку STR, и возвращает найденную позицию. Если подстрока SUBSTR не найдена, возвращается значение $[ -1.

    Пример :
    #!/bin/perl
    $STR = "Этот безумный, безумный, безумный, безумный мир!";
    $SUBSTR = "безумный";
    $POS = 7;
    print "Индекс первого символа строки по умолчанию равен $[\n";
    print "Позиция первого вхождения подстроки '$SUBSTR'
               в строку '$STR' = ",index($STR, $SUBSTR), "\n";
    print "Позиция первого после позиции $POS вхождения подстроки '$SUBSTR'
               в строку '$STR' = ",index($STR, $SUBSTR, $POS), "\n";
    print "Позиция последнего вхождения подстроки '$SUBSTR'
               в строку '$STR' = ",rindex($STR, $SUBSTR), "\n";
    print "Позиция последнего перед позицией $POS вхождения подстроки '$SUBSTR'
               в строку '$STR' = ",rindex($STR, $SUBSTR, $POS), "\n";
    $[=2;
    print "\nИндех первого символа строки по умолчанию изменен на $[\n";
    print "Позиция первого вхождения подстроки '$SUBSTR'
               в строку '$STR' = ",index($STR, $SUBSTR), "\n";
    print "Позиция первого после позиции $POS вхождения подстроки '$SUBSTR'
               в строку '$STR' = ",index($STR, $SUBSTR, $POS), "\n";
    print "Позиция последнего вхождения подстроки '$SUBSTR'
               в строку '$STR' = ",rindex($STR, $SUBSTR), "\n";
    print "Позиция последнего перед позицией $POS вхождения подстроки '$SUBSTR'
               в строку '$STR' = ",rindex($STR, $SUBSTR, $POS), "\n";
    
    В результате выполнения скрипта будут выведены следующие строки :
    Индекс первого символа строки по умолчанию равен 0
    Позиция первого вхождения подстроки 'безумный'
       в строрку 'Этот безумный, безумный, безумный, безумный мир!' = 5
    Позиция первого после позиции 7 вхождения подстроки 'безумный'
       в строку 'Этот безумный, безумный, безумный, безумный мир!' = 15
    Позиция последнего вхождения подстроки 'безумный'
       в строрку 'Этот безумный, безумный, безумный, безумный мир!' = 35
    Позиция последнего перед позицией 7 вхождения подстроки 'безумный'
       в строку 'Этот безумный, безумный, безумный, безумный мир!' = 5
    Индекс первого символа строки по умолчанию изменен на 2
    Позиция первого вхождения подстроки 'безумный'
       в строрку 'Этот безумный, безумный, безумный, безумный мир!' = 7
    Позиция первого после позиции 7 вхождения подстроки 'безумный'
       в строку 'Этот безумный, безумный, безумный, безумный мир!' = 7
    Позиция последнего вхождения подстроки 'безумный'
       в строрку 'Этот безумный, безумный, безумный, безумный мир!' = 37
    Позиция последнего перед позицией 7 вхождения подстроки 'безумный'
       в строку 'Этот безумный, безумный, безумный, безумный мир!' = 7
    

    sprintf

    Возвращает строку, представляющую форматный вывод списка значений определяемого параметра СПИСОК, в соответствии с заданной первым параметром ФОРМАТ строкой формата. Символы форматирования соответствуют аналогичной функции в языке C.
    sprintf ФОРМАТ, СПИСОК

    substr

    Извлекает из строки, заданной параметром СТРОКА, подстроку длиной равной значению параметра ДЛИНА, начиная с символа, заданного параметром СМЕЩЕНИЕ. Если СМЕЩЕНИЕ отрицательно, то извлечение начинается с последнего символа строки. Если значение параметра ДЛИНА отрицательно, то от конца строки отсекается количество символов, равное абсолютному значению этого параметра. Если задана строка ЗАМЕЩЕНИЕ, то выделенная подстрока замещается ею в параметре СТРОКА, которы в этом случае должен быть lvalue.
    substr СТРОКА, СМЕЩЕНИЕ [, ДЛИНА[, ЗАМЕЩЕНИЕ]]

    uc

    Преобразаут все строчные буквы строкового параметра ВЫРАЖЕНИЕ в прописные и возвращает полученную строку. Использует текущие установки локализации, если используется use local.
    uc ВЫРАЖЕНИЕ
    uc        (эквивалентно uc $_)

    ucfirst

    Преобразует первый символ строкового параметра ВЫРАЖЕНИЕ в верхний регистр и возвращает полученную строку. Использует текущие установки локализации, если используется use local.
    ucfirst ВЫРАЖЕНИЕ
    ucfirst   (эквивалентно ucfirst $_)

    Функции, связанные с регулярными выражениями

    pos
    Синтаксис:
    pos [$SCALAR]

    Функция pos() возвращает позицию, в которой завершился последний глобальный поиск $SCALAR=~m/.../g, осуществленный в строке, задаваемой переменной $SCALAR. Возвращаемое значение равно числу length($`) + length($&). Следующий глобальный поиск m/.../g в данной строке начнется именно с этой позиции.

    Если аргумент $SCALAR отсутствует, возвращается позиция завершения последнего глобального поиска, осуществленного в строке $_.

    Пример:
    $words = "one two three four";
    while ($words =~m/\w+/g) {
      print "pos=",pos($words)," length(\$`)=",length($`),
            " length(\$&)=",length($&),"\n";
    }
    
    В результате выполнения данного скрипта будут выделены номера позиций, соответствующих окончаниям слов в строке $words:

    pos=3    length($`)=0    length($&)=3
    pos=7    length($`)=4    length($&)=3
    pos=13   length($`)=8    length($&)=5
    pos=18   length($`)=14   length($&)=4
    
    функцию pos() можно использовать в левой части операции присваивания для изменения начальной позиции следующего поиска:
    # изменение начальной позиции для последующего поиска
    $words = "one two three four";
    pos $words = 4;
    while ($words =~m/\w+/g) {
      print pos $words, "\n";
    }
    
    Здесь поиск слов начнется со второго слова, и будут выделены номера позиций 7, 13 и 18.

    quotemeta

    Возвращает строку, в которой перед каждым не алфавитно-цифровым символом поставлена обратная косая черта. Значение параметра ВЫРАЖЕНИЕ интерпретируется как строка. (Внутренняя функция реализации управляющего символа \Q в строках в двойных кавычках.)
    quotemeta ВЫРАЖЕНИЕ
    quotemeta (эквивалентно quotemeta $_)
    Например, в результате выполнения
    print quotemeta "*****", "\n";
    будет выведена строка
    \*\*\*\*\*
    split
    Синтаксис:
    split [/PATTERN/[, EXPR[, LIMIT]]]

    Разбивает строку EXPR на отдельные строки, используя в качестве разделителя образец, задаваемый регулярным выражением PATTERN. В списковом контексте возвращает массив полученных строк, в скалярном контексте - их число. Если функция split() вызывается в скалярном контексте, выделяемые строки помещаются предопределенный массив @_. Об этом не следует забывать, так как массив @_ обычно используется для передачи параметров в подпрограмму, и обращение к функции split() неявно в скалярном контексте эти параметры уничтожит.
    Если присутствует параметр LIMIT, то он задает максимальное количество строк, на которое может быть разбита исходная строка. Отрицательное значение параметра LIMIT трактуется как произвольно большое положительное число.
    Если параметр EXPR опущен, разбивается строка $_. Если отсутствует также параметр PATTERN, то в качестве разделителя полей используются пробельные символы после пропуска всех начальных пробельных символов (что соответствует заданию образца в виде /\s+). К пробельным символам относится пробел (space), символ табуляции (tab), возврат каретки (carriage return), символ перевода строки (line feed) и символ перевода страницы (form feed).
    Предопределенная глобальная переменная $_ служит для обозначения используемой по умолчанию области ввода и поиска по образцу. Обычно мы осуществляем ввод при помощи операции "<>"("ромб"). Внутри угловых скобок <> может стоять дескриптор файла ввода, например, <STDIN>. Если дескриптор файла отсутствует, то в качестве файлов ввода используются файлы, переданные программе Perl в качестве аргументов командной строки.
    Пусть, например, программа содержится в файле script.pl:
    #! /usr/bin/perl
    while (<>) {
      print;
    };
    Программа вызвана следующим образом:
    script.pl file1 file2 file3
    Тогда операция <> будет считывать строки сначала из файла file1, затем из файла file2 и, наконец, из файла file3. Если в командной строке файлы не указаны, то в качестве файла ввода будет использован стандартный ввод.
    Только в случае, когда условное выражение оператора while состоит из единственной операции "ромб", вводимое значение автоматически присваивается предопределенной переменной $_. Вот что означают слова о том, что переменная $_ применяется для обозначения используемой по умолчанию области ввода. Аналогично обстоит дело с поиском по образцу.
    Пример использования функции split():
    #!/usr/bin/perl
    while (<>) {
      chop;
      print "Число полей во входной строке '$_' равно ", $n=split;
      print "\nВходная строка разбита на строки:\n";
      foreach $i (@_) {
        print $i . "\n";
      }
      print "Объединение списка строк в одну строку через '+':\n";
      $joined = join "+", @_;
      print "$joined\n";
    }
    
    В результате применения операции ввода <> внутри условного выражения оператора while вводимая строка будет присвоена переменной $_. Функция chop() без параметров применяется к переменной $_. В операции print вторым операндом является выражение $n=split, в котором функция split вызывается в скалярном контексте и без параметров. Поэтому она применяется по умолчанию к переменной $_. В качестве разделителя полей по умолчанию используется множество пробельных символов, а результат помещается в массив @_. А затем к массиву @_ применяется функция join(), объединяющая строки-элементы массива в одну строку.

    Если ввести строку "one two three", то вывод будет иметь вид:
    one two three
    Число полей во входной строке 'one two three' равно 3
    Входная строка разбита на строки:
    one
    two
    three
    Объединение списка строк в одну строку через '+':
    one+two+three

    study

    Оптимизирует строковые данные переметра СТРОКА для дальнейшего использования в повторных операциях поиска по образцу. В цикле с несколькими опрерациями поиска может сэкономить время выполнения.
    study ВЫРАЖЕНИЕ
    study     (эквивалентно study $_)

    Числовые функции

    abs

    Вычисление абсолютного значения выражения.
    abs ВЫРАЖЕНИЕ
    abs       (эквивалентно abs $_)

    atan2

    Вычисление arctg(X/Y).
    atan2 X, Y

    cos

    Вычисление функции cos (ВЫРАЖЕНИЕ), выражение в радианах.
    cos ВЫРАЖЕНИЕ
    cos       (эквивалентно cos $_)

    exp

    Вычисление значения экспоненциальной функции eВЫРАЖЕНИЕ.
    exp ВЫРАЖЕНИЕ
    exp       (эквивалентно exp $_)

    hex

    Интерпретирует строковое ВЫРАЖЕНИЕ как шестнадцатиричное число и вычисляет его десятичный эквивалент.
    hex ВЫРАЖЕНИЕ
    hex       (эквивалентно hex $_)

    int

    Вычисление целой части числа (отбрасывается дробная часть).
    int ВЫРАЖЕНИЕ
    int       (эквивалентно int $_)

    log

    Вычисляет натуральный логарифм числа (по основанию e).
    log ВЫРАЖЕНИЕ
    log       (эквивалентно log $_)

    oct

    Интерпретирует строковое ВЫРАЖЕНИЕ как восьмеричное число и вычисляет его десятичный эквивалент. Если строка начинается с символов "0x", то ее содержимое интерпретируется как шестнадцатиричное число.
    oct ВЫРАЖЕНИЕ
    oct       (эквивалентно oct $_)

    rand

    Возвращает случайное дробное число в интервале 0 до значения параметра ВЫРАЖЕНИЕ.
    rand ВЫРАЖЕНИЕ
    rand      (эквивалентно rand 1)

    sin

    Вычисление функции sin(ВЫРАЖЕНИЕ), выраженное в радианах.
    sin ВЫРАЖЕНИЕ
    sin (эквивалентно sin $_)

    sqrt

    Вычисляет квадратный корень числа.
    sqrt ВЫРАЖЕНИЕ
    sqrt      (эквивалентно $_)

    srand

    Затравка перед первым вызовом rand() (в Perl 5.005 и выше вызывается автоматически при обращении к rand).
    srand ВЫРАЖЕНИЕ
    srand

    Функции обработки массивов скаляров

    pop

    Удаляет из массива скаляров последний элемент и возвращает его значение. Если массив пустой, то возвращает неопределенное значение undef.
    pop МАССИВ
    pop       (в основной программе эквивалентно pop @ARGV)
    pop       (в подпрограмме эквивалентно pop @_)

    push

    Рассматривает массив, заданный параметром МАССИВ, как стек и добавляет в конец массива элементы списка, определяемого параметром СПИСОК. Возвращает новое количество элементов полученного массива.
    push МАССИВ, СПИСОК

    shift

    Удаляет из массива скаляров первый элемент и возвращает его значение. После удаления элемента оставшиеся сдвигаются влево: второй становится первым, третий вторым и т.д. Если массив пустой, то возвращает неопределенное значение undef.
    shift МАССИВ
    shift     (в основной программе эквивалентно 
    shift @ARGV, в подпрограмме эквивалентно
    shift @_)

    splice

    Удаляет из массива заданное КОЛИЧЕСТВО элементов, начиная с элемента, определенного параметром НОМЕР. В случае задания параметра СПИСОК заменяет указанные элементы элемента списка. В списковом контексте возвращает удаленные элементы; в скалярном контексте - последний удаленный элемент. Если параметр КОЛИЧЕСТВО не задан, то удаляются все элементы после элемента с номером, определенным параметром НОМЕР.
    splice МАССИВ, НОМЕР[, КОЛИЧЕСТВО[, СПИСОК]]

    unshift

    Добавляет элементы списка, определенного параметром СПИСОК, в начало массива, заданного параметром МАССИВ. Выполняет действия, противоположные действиям функции shift.
    unshift МАССИВ, СПИСОК

    Функции обработки списков

    grep

    Вычисляет блок операторов БЛОК или ВЫРАЖЕНИЕ для всех элементов списка, заданного параметром СПИСОК, локально устанавливая значение специальной переменной <>$_ равным значению элемента списка. В списковом контексте возвращается список элементов, для которых ВЫРАЖЕНИЕ вычисляется равным Истина. В скалярном контексте - количество раз, когда ВЫРАЖЕНИЕ вычислялось равным Истина.
    grep БЛОК СПИСОК
    grep ВЫРАЖЕНИЕ, СПИСОК

    join

    Соединяет отдельные строковые элементы списка параметра СПИСОК в одну строку, вставляя между ними разделитель, равный значению параметра ВЫРАЖЕНИЕ и возвращает полученную строку.
    join ВЫРАЖЕНИЕ, СПИСОК
    

    map

    Вычисляет блок операторов БЛОК или ВЫРАЖЕНИЕ для всех элементов списка, заданного параметром СПИСОК, локально устанавливая значение специальной переменной $_ равным значению элемента списка. Возвращает список элементов, составленный из результатов указанных вычислений для каждого элемента заданного списка. Операторы из БЛОК и ВЫРАЖЕНИЕ вычисляются в списковом контексте.
    map БЛОК СПИСОК
    map ВЫРАЖЕНИЕ, СПИСОК

    reverse

    В списковом контексте возвращает список значений элементов заданного параметром СПИСОК списка в обратном порядке. В скалярном контексте соединяет все элементы списка в одну строку и возвращает строку, в которой символы расположены в обратном порядке.
    reverse СПИСОК

    sort

    Сортирует список значений, определенный параметром СПИСОК. Если параметры БЛОК или ПОДПРОГРАММА не заданы, то используется стандартная процедура сравнения строковых данных; если заданы, то операторы блока или подпрограмма используются в качестве процедуры сравнения при сортировки элементов списка. Возвращает отсортированный список значений исходного списка.
    sort [ПОДПРОГРАММА] СПИСОК
    sort [БЛОК] СПИСОК
    

    unpack

    Выполняет обратные действия относительно действий функции pack(): берет строку (параметр ВЫРАЖЕНИЕ), представляющую двоичную структуру упакованного массива или списка значений, и распаковывает ее в соответствии с заданным параметром ШАБЛОН шаблоном. В списковом контексте возвращает массив полученных значений, в скалярном - значение первого полученного элемента массива. Шаблон должен быть такой же, как и в функции pack().
    unpack ШАБЛОН, ВЫРАЖЕНИЕ
    

    Функции обработки хеш-массивов

    delete

    Удаляет из хеш-массива ключ и ассоциированное с ним значение. Ключ можно задавать как вычисляемое значение выражения. Возвращет значение, ассоциированное с удаленным ключом, или неопределенное значение, если заданного ключа в хеш-массиве не существует.
    delete ВЫРАЖЕНИЕ

    each

    Возвращет следующую пару ключ/значение из хеш-массива, определенного параметром ХЕШ. Можно использовать в цикле для организации чтения хеша. В списковом контексте возвращает пару ключ/значение в виде двухэлементного списка, в скалярном контексте - только ключ. Если перебраны все элементы хеша, то в списковом контексте возвращает пустой список, а в скалярном контексте - неопределенное значение undef; следующий вызов функции each() начинает новый итерационный процесс.
    each ХЕШ

    exists

    Проверяет, существует ли в хеш-массиве заданный ключ. Если существует, то возвращает булево значение Истина, иначе - Ложь. Параметр может быть выражением, возвращающим ссылку на элемент хеша с заданным ключом, например, $hash{$key}.
    exists ВЫРАЖЕНИЕ

    keys

    В списковом контексте возвращает список, элементами которого являются все ключи хеш-массива, заданного параметром ХЕШ; в скалярном контексте возвращает количество ключей хеш-массива.
    keys ХЕШ

    values

    В списковом контексте возвращает список, элементами которого являются все значения хеш-массива, заданного параметром ХЕШ; в скалярном контексте возвращает количество значений хеш-массива.
    values ХЕШ

    Функции ввода/вывода

    binmode

    Подготавливает файл, ассоциированный с дескриптом ДЕСКРИПТОР, для чтения и записи в двоичном формате, а не в текстовом, в операционных системах, которые различают двоичные и текстовые файлы. В Unix эта функция не имеет никакого эффекта; необходима в MS-DOS и других архаичных системах, иначе двоичный файл может быть испорчен.
    binmode ДЕСКРИПТОР

    dbmclose

    Разрывает связывание хеш-массива и файлом базы DBM. Заменена функцией untie().
    dbmclose ХЕШ

    dbmopen

    Создает связывание хеш-массива с файлом базы DBM, имя которого определяется значением параметра ФАЙЛ_DB. Заменена функцией tie(). Файл базы данных открывается в режиме, указанном параметром РЕЖИМ.
    dbmopen ХЕШ, ФАЙЛ_DB, РЕЖИМ

    die

    Вне тела функции eval() выводит значения элементов списков, заданного параметром СПИСОК, в стандартный файл ошибок STDERR и завершает выполнение сценария Perl с текущим значением специальной переменной $!.
    Если используется в теле функции eval(), то сообщение об ошибке помещается в переменную $@ и функция eval() завершается с неопределенным значением. Такое поведение позволяет использовать функцию die() для генерирования исключительных состояний.
    die СПИСОК
    Применяется также в функциях, относящихся к управлению выполнением программ.
    eof

    Тестирует файл, ассоциированный с дескриптом, заданным параметром ДЕСКРИПТОР, на конец файла. Возвращает 1, если следующая операция чтения из файла возвратит конец файла. Употребленная без параметра, использует в качестве параметра файл, для которого выполнялась последняя операция чтения. Если используется с пустыми скобками eof(), то тестирует символ конца самого последнего файла из списка файлов, переданных в сценарий через командную строку.
    eof ДЕСКРИПТОР
    eof ()
    eof

    fileno

    Возвращает числовой системный дескриптор для файла, ассоциированного с дескриптором, заданным параметром ДЕСКРИПТОР.
    fileno ДЕСКРИПТОР

    flock

    Блокирует файл, ассоциированный с дескриптором, заданным параметром ДЕСКРИПТОР, для выполнения другими пользователями операций, определенных параметром ОПЕРАЦИЯ. Возвращает булево значение Истина в случае успешной блокировки файла и Ложь в противном случае. Блокирует полностью весь файл, а не отдельные записи.
    flock ДЕСКРИПТОР, ОПЕРАЦИЯ

    format

    Объявляет формат, используемый для вывода функцией write().
    format ИМЯ_ФОРМАТА = 
    ФОРМАТЫ_СТРОК
    Параметр ИМЯ_ФОМАТА представляет правильный идентификатор Perl. Он должен в точности соответствовать имени дескриптора файла, который используется в качестве единственного параметра в функции вывода write().

    Так как операция format не является вычисляемой операцией Perl, то объявление формата может осуществляться в любом месте программы. Обычно все объявления форматов задаются либо в начале, либо в конце программы.
    getc
    Функция getc возвращает символ в текущей позиции файла, дескриптор которого передан ей в качестве параметра, или неопределенное значение в случае достижения конца файла или возникновения ошибки. Если функция вызывается без параметра, то она читает символ из стандартного файла вывода STDIN.

    getc;       # Чтение символа из STDIN
    getc F1;    # чтение символа в текущей позиции файла с дескриптором F1





    print
    Синтаксис:
    print ДЕСКРИПТОР СПИСОК;

    Здесь ДЕСКРИПТОР представляет дескриптор файла, в который функция выводит строковые данные, представленные списком вывода СПИСОК. Он может состоять из переменных, элементов массивов и выражений, вычисляемых как строковые данные. Дескриптор файла создается функцией open(). Он может быть опущен, и в этом случае вывод осуществляется в стандартный файл вывода STDOUT, если только функцией select() не выбран другой файл вывода по умолчанию. Обычное стандартное устройство вывода - экран монитора компьютера.

    Функция print при выводе своего списка не завервает его символом новой строки "\n". Это означает, что следующая функция print начнет вывод на экран непосредственно после последнего выведенного предыдущей функцией print символа. Если такое поведение не желательно, то следует список вывода каждой функции print явно завершать строкой, содержащей символ новой строки, или включать его последним символом последнего элемента списка вывода.

    Пример 1:
    #! perl -w
    print "Строка 1:";
    print "Строка 2:\n";
    print "Строка 3:","\n";
    print STDOUT "Строка 4:\n";
    

    Вот что получится на экране :
    Строка 1:Строка 2:
    Строка 3:
    Строка 4:
    

    Вторая функция print начинает свой вывод на той же строке, на которой завершила вывод первая функция, в которой в списке вывода нет символа перехода на новую строку. В четвертой функции явно указан дескриптор стандартного файла вывода STDOUT.
    Функция print, как и большинство других функций, является списковой операцией, и все элементы списка вывода вычисляются в списковом контексте. Это обстоятельство следует учитывать при использовании в качестве элементов списка вывода выражений с вызовами подпрограмм.
    Если параметры функции print, включая дескриптор файла, заключены в круглые скобки, то такая синтаксическая конструкция считается термом и в выражении имеет наивычший приоритет вычисления.
    Пример 2:
    print ($m + $n) **2;

    Будет напечатана сумма значений переменных $m и $n, а не их сумму, возведенную в квадрат. Компилятор Perl, обнаружив после лексемы print левую круглую скобку, найдет правую круглую скобку и будет рассматривать их содержимое как список параметров функции print. А так как такая констркция есть терм, то сначало будет выполнена операция печати суммы значений переменных, а потом результат этой операции (Истина = 1) будет возведен в квадрат. Добавление необязательного дескриптора стандартного файла вывода STDOUT исправит подобную ошибку :
    Пример 3:
    print STDOUT ($m + $n) ** 2; # Выведет ($m + $n) ** 2

    Если в функции печати print не задан список вывода, то она по умолчанию выводит содержимое специальной переменной $_ в файл, определенный параметром ДЕСКРИПТОР.
    Пример 4:
    print;         # Выводится содержимое переменной $_ 
                     на экран монитора
    print STDOUT;  # Эквивалентен предыдущему оператору
    print FILEOUT; # Выводится содержимое переменной $_  в файл
                   # с дескриптором FILEOUT
    

    printf

    Выводит форматированный список строковых данных в файл, ассоциированный с дескриптом, заданный параметром ДЕСКРИПТОР. Если этот параметр опущен, то вывод осуществляется в стандартный файл вывода STDIN или текущий файл, установленный функцией select(). Параметр ФОРМАТ представляет строку, содержащую символы форматирования, полностью совпадающие с символами форматирования системной функцией Unix printf(3).
    printf ДЕСКРИПТОР ФОРМАТ, СПИСОК
    printf ФОРМАТ, СПИСОК
    

    read
    Синтаксис:
    read ДЕСКРИПТОР, ПЕРЕМЕННАЯ, ДЛИНА [,СМЕЩЕНИЕ];

    Читает количество байтов, определенное значением параметра ДЛИНА, в скалярную переменную, определяемую параметром ПЕРЕМЕННАЯ, из файла с дескриптором, заданным первым параметром ДЕСКРИПТОР.
    Возвращаемое значение - действительное количество прочитанных байтов, 0 при попытке чтения в позиции конца файла и неопределенное значение в случае возникновения ошибки.
    Параметр СМЕЩЕНИЕ определяет количество сохраняемых байтов из содержимого переменной ПЕРЕМЕННАЯ, т.е. запись прочитанных из файла данных будет добавлена к содержимому переменной после байта, определяемого значением параметра СМЕЩЕНИЕ.
    Отрицательное значение смещения -n (n - целое число) означает, что из содержимого переменной ПЕРЕМЕННАЯ отбрасываются последние n байтов и к оставшейся строке добавляется запись, прочитанная из файла.

    Пример :
    Предположим, что файл in.dat содержит три строки данных:
    One
    Two
    Three

    #! perl -w
    open (F1, "in.dat") or die "Ошибка открытия файла: $!";
    $string = "1234567890"
    read F1, $string, 6;                  # Чтение шести байт в переменную без смещения
    print $string,"\n";                   # $string = "One\nTw"
    read F1, $string, 6, length($string);
    print $string,"\n";                   # $string = "One\nTwo\nThre"

    readdir

    В скалярном контексте читает следующее имя элемента каталога, ассоциированного с дескриптором каталога (параметр ДЕСКРИПТОР) функцией opendir(). В списковом контексте возвращает имена всех оставшихся элементов (файлов и каталогов). Если больше не осталось прочитанных элементов, возвращает неопределенное значение в скалярном контексте и пустой список в списковом контексте.
    readdir ДЕСКРИПТОР

    rewinddir

    Устанавливает текущую позицию каталога, ассоциированного с дескриптором ДЕСКРИПТОР, на начало.
    rewinddir ДЕСКРИПТОР

    seek
    Синтаксис :
    seek ДЕСКРИПТОР, СМЕЩЕНИЕ, ТОЧКА_ОТСЧЕТА

    Текущая позиция в файле автоматически изменяется в соответствии с выполненными операциями чтения/записи. Ее можно изменить с помощью функции seek(), которой передаются в качестве параметров дескриптор файла, смещение и точка отсчета. Для связанного с дескриптором файла устанавливается новая текущая позиция, смещенная на заданное параметром СМЕЩЕНИЕ число байт относительно точки отсчета.

    Параметр ТОЧКА_ОТСЧЕТА может принимать одно из трех значений:
    0 - начало файла
    1 - текущая позиция
    2 - конец файла

    Смещение может быть как положительным, так и отрицательным.
    Обычно оно отрицательно для смещения относительно конца файла и положительно для смещения относительно начала файла.
    Для задания точки отсчета можно воспользоваться константами SEEK_SET,SEEk_CUP и SEEK_END из модуля IO::Seekable, которые соответствуют началу файла, текущей позиции и концу файла.
    Естественно, необходимо подключить этот модуль к программе с помощью ключевого слова use.
    Например, следующие операторы устанавливают одинаковые текущие позиции в файлах:
    use IO::Seekable;
    seek FILE1, 5, 0;
    seek FILE2, 5, SEEK_SET;

    Для перехода в начало или конец файла следует использовать нулевое смещение относительно соответствующих точек отсчета при обращении к функции seek():
    seek FILE1, 0, 0;   # Переход в начало файла
    seek FILE1, 0, 2;   # Переход в конец файла

    seekdir

    Устанавливает текущую позицию каталога, ассоциированного со своим дескриптором (параметр ДЕСКРИПТОР), для функции readdir(). Параметр ПОЛОЖЕНИЕ должен быть значением, возвращаемым функцией telldir.
    seekdir ДЕСКРИПТОР, ПОЛОЖЕНИЕ

    select

    ВОзвращает дескриптор текущего установленного файла вывода. Если задан параметр ДЕСКРИПТОР, делает файл, ассоциированный с этим дескриптором текущим установленным файлом вывода. Это приводит к тому, что функции print() и write() без дескрипторов будут осуществлять вывод именно в этот файл.
    select [ДЕСКРИПТОР]

    syscall

    Осуществляет вызов системной команды, заданной первым элементом передаваемого функции списка ( параметр СПИСОК); остальные элементы списка передаются этой команде в качестве параметров. В случае не успешного выполнения системной команды, возвращает -1 и в переменной $! содержится информация об ошибке.
    syscall СПИСОК

    sysread

    Аналогична функции read(), за исключением того, что осуществляет не буферизованный ввод данных, не используя буферы стандартной системы ввода/вывода stdio.
    sysread ДЕСКРИПТОР, СКАЛЯР, КОЛИЧЕСТВО[, СМЕЩЕНИЕ]

    syswrite

    Запись заданного количества байт из скалярной переменной, определяемой параметром СКАЛЯР, в файл, ассоциированный с заданным параметром ДЕСКРИПТОР дескриптором. Возвращает истинное количество прочитанных байтов или неопределенное значение undef привозникновении ошибки. Параметр СМЕЩЕНИЕ задает позицию в строковой переменной СКАЛЯР, с которой записываются в файл данные (по умолчанию с начала строки данных скалярной переменной); отрицательное значение этого параметра определяет запись заданного количества байт, начиная с конца строки. Осуществляет не буферизованный вывод данных, не используя буферы стандартной системы ввода/вывода stdio.
    syswrite ДЕСКРИПТОР, СКАЛЯР, КОЛИЧЕСТВО[, СМЕЩЕНИЕ]

    tell

    Возвращает текущую позицию в файле, ассоциированным с заданным параметром ДЕСКРИПТОР дескриптором. Если параметр опущен, то подразумевается последний файл, для которого была выполнена операция чтения данных.
    tell [ДЕСКРИПТОР]

    telldir

    Возвращает текущую позицию в каталоге, ассоциированного с заданным параметром ДЕСКРИПТОР дескриптором.
    telldir ДЕСКРИПТОР

    truncate
    Синтаксис :
    truncate ДЕСКРИПТОР, ДЛИНА;
    truncate ИМЯ_ФАЙЛА, ДЛИНА;

    Функция truncate() усекает файл до заданной длины. Для задания файла можно использовать как имя файла, так и дескриптор открытого файла.

    Функция возвращает значение Истина, если длина файла успешно усечена до количества байт, определенных в параметре ДЛИНА, или неопределенное значение undef в противном случае.
    Под усечением файла понимается не только уменьшение его длины, но и увеличение. Это означает, что значение второго параметра функции truncate() может быть больше истинной длины файла, что позволяет делать "дыры" в содержимом файла, которые в дальнейшем можно использовать для записи необходимой информации, не уничтожая уже записанную в файл.
    Пример (Файл с "дырами"):
    #! perl -w
    # Создание файла с "дырами"
    for ($i=1;$i<=3;$i++) {
      open (F, ">>>out.dat") or die $!;
        print F "Запись".$i;
      close F;
    
      open (F, ">>out.dat") or die $!;
        truncate F, 19*$i;
      close F;
    }
    # Запись информации в "дыры"
    open (F, "+<out.dat") or die $!;
    for ($i=1;$i<=3;$i++) {
      seek F,0,1;
      read F,$recl,7;
      seek F,0,1;
      print F "<CONTENTS:".$i.">"
    }
    close F;


    На каждом шаге первого цикла for в конец файла out.dat записывается информация длиной 7 байтов, а потом его длина увеличивается на 12 байтов, образуя пустое пространство в файле. Следующий цикл for заносит в эти созданные "дыры" информацию длиной 12 байтов, не затирая хранящуюся в файле информацию.
    Для изменения длины файла функцией truncate приходится закрывать его и снова открывать. Это связано с тем обстоятельством, что функция truncate() добавляет пустое пространство в начало файла, сдвигая в конец его содержимое, если применять ее, не закрывая файл.
    После выполнения первого цикла for содержимое файла out.dat выглядит так:
    Запись1      Запись2      Запись3
    По завершении всей программы файл будет содержать следуюшую строку:
    Запись1<CONTENTS:1>Запись2<CONTENTS:2>Запись3<CONTENTS:3>

    warn

    Выводит в стандартный файл ошибок STDERR значения элементов списка, определяемого параметром СПИСОК. Если он пуст, то выводит содержимое специальной переменной $@ (обычно после выполнения функции eval), добавляя строку "\t...caught", а если и она пуста, то выводит сообщение "Warning: Something-s wrong"
    warn СПИСОК

    write

    Осуществляет форматный вывод в файл, Ассоциированный с заданным параметром ДЕСКРИПТОР дескриптором, в соответствии с определенным форматом. Если параметр не задан, то выводит в стандартный файл вывода STDOUT или в файл, выбранный функцией select().
    write [ДЕСКРИПТОР]

    Функции для работы с файлами и каталогами

    -X
    В Perl предусмотрен набор унарных операций, возвращающих значение только одного поля структуры индексного дескриптора. Эти операции в документации называются "операциями -X", так как их названия состоят из дефиса с последующим единственным символом. Все они являются унарными именованными операциями и имеют свой приоритет в сложных выражениях.

    Полный перечень унарных операций проверки файлов
    -rФайл может читаться эффективным uid/gid
    -wЗаписывать в файл может эффективный uid/gid
    -xФайл может выполняться эффективным uid/gid
    -oВладельцем файла является эффективный uid/gid
    -RФайл может читаться действительным uid/gid
    -WЗаписывать в файл может действительный uid/gid
    -XФайл может выполняться действительным uid/gid
    -OВладельцем файла является действительный uid/gid
    -eФайл существует
    -zРазмер файла равен нулю
    -sРазмер файла отличен от нуля (возвращает размер)
    -fФайл является обычным (plain) файлом
    -dФайл является каталогом
    -lФайл является символической ссылкой
    -pФайл является именованным програмным каналом (FIFO) или проверяемый дескриптор связан с програмным каналом
    -SФайл является сокетом
    -bФайл является специальным блочным файлом
    -cФайл является специальным символьным файлом
    -tДескриптор файла связан с терминалом
    -uУ файла установлен бит setuid
    -gУ файла установлен бит setgid
    -kУ файла установлен бит запрета (sticky bit)
    -TФайл является текстовым файлом
    -BФайл является двоичным (противоположным текстовому)
    -MВозраст файла в днях на момент выполнения программы
    -AТо же для врмени последнего обращения к файлу
    -CТо же для время последней модификации индексного дескриптора файла


    Унарные операции применяются к строке, содержащей имя файла, к выражению, вычисляемым значением которого является имя файла, или к файловому дескриптору Perl. Если параметр операции не задан, то она тестирует файл, чье имя содержится в специальной переменной $_. Каждая операция проверки атрибута файла возвращает 1, если файл обладает соответствующим атрибутом, пустую строку "" в противном случае и неопределенное значение undef, если указанный в параметре файл не существует.

    Несколько слов об алгоритме определения текстовых и двоичных файлов (операции -T и -B). Эти операции анализируют содержимое первого блока файла на наличие "странных" символов - необычных управляющих последовательностей или байтов с установленными старшими битами. Если обнаружено достаточно большое количество подобных символов (больше 30%), то файл считается двоичным, иначе текстовым. Любой файл с пустым первым блоком рассматривается как двоичный.

    Если эти операции применяются к файловым дескрипторам Perl, то проверяется содержимое буфера ввода/вывода, а не первого блока файла. Обе эти операции, примененные к файловым дескрипторам, возвращают булево значение Истина, если связанный с дескриптором файл пуст или установлен на конец файла.

    При выполнении унарных именованных операций проверки файла на самом деле неявно вызывается функция stat(), причем результаты ее вычисления кэшируются, что позволяет использовать специальный файловый дескриптор _ для ускорения множественных проверок файла:
    if( -s("filename") && -T _) {
    # Что-то делаем для текстовых файлов не нулевого размера
    . . . . . . . . . . . . . .
    }

    chdir

    Изменение текущего рабочего каталога на каталог, определяемый значением параметра ВЫРАЖЕНИЕ. Если параметр опущен, домашний каталог становится текущим. Возвращает бклево значение Истина в случае успешного выполнения операции замены текущего каталога и Ложь в противном случае.
    chdir [ВЫРАЖЕНИЕ]

    chmod
    Синтаксис :
    chmod СПИСОК

    Функция chmod() изменяет права доступа для файлов, представленных в списке, переданном ей в качестве параметра. Первым элементом этого списка должно быть трехзначное восьмеричное число, задающее права доступа для владельца, пользователей из группы, в которую входит владелец, и прочих пользователей. Каждая восьмеричная цифра определяет право на чтение файла, запись в файл и его выполнение (в случае если файл представляет выполняемую программу) для указанных выше групп пользователей. Установленные биты ее двоичного представления отражают соответствующие права доступа к файлу. Например, если установлены все три бита (восьмеричное число 7), то соответствующая группа пользователей обладает всеми перечисленными правами: может читать из файла, записывать в файл и выполнять его. Значение равное 6 определяет право на чтение и запись, 5 позволяет читать из файла, выполнять его, но не позволяет записывать в этот файл и т.д. Обычно не выполняемый файл создается с режимом доступа 0666 - все пользователи могут читать и записывать информацию в файл, выполняемый файл - с режимом 0777. Если владелец файла желает ограничить запись в файл пользователей не его группы, то следует выполнить следующий оператор:

    chmod 0664, "file.dat";

    Возвращаемым значением функции chmod(), как и функции chown(), является количество файлов из списка, для которых операция изменения прав доступа завершилась успешно.

    В операционных системах DOS и Windows имеет значение только установка режимов доступа владельца.

    chown
    Синтаксис :
    chown СПИСОК

    Любой пользователь, создавший собственный файл, считается его владельцем. Изменить владельца файла из сценария Perl можно функцией chown(). Параметром этой функции является список, первые два элемента которого должны представлять числовые идентификаторы uid и gid. Остальные элементы списка являются именами файлов, для которых изменяется владелец. Эта функция возвращает количество файлов, для которых операция изменения владельца и группы прошла успешно.

    Пример :
    @list = (234, 3, "file1.dat", "file2.dat");
    $number = chown(@list);
    warn "Изменился владелец не у всех файлов!" if $number != @list-2;

    Изменить владельца файла может только сам владелец или суперпользователь (обычно системный администратор) системы UNIX. В операционных системах с файловой системой отличной от UNIX (DOS, Windows) эта функция отрабатывает, но ее установки не влияют на доступ к файлу.

    chroot

    Определяет новый корневой каталог для всех относительных (начинающихся с косой черты "/") имен файлов процесса пользователя и порожденных им процессов. Не меняет текущий рабочий каталог. В отсутствии параметра используется значение специальной переменной $_. Может вызываться только суперпользователем.
    chroot ИМЯ_КАТАЛОГА

    close
    Синтаксис :
    close ДЕСКРИПТОР

    По завершению работы с файлом он закрывается функцией close(). Единственным необязательным параметром этой функции является дескриптор, ассоциированный с файлом.

    Эта функция возвращает значение Истина, если успешно очищен буфер ввода/вывода и закрыт системный дескриптор файла.
    Вызванная без параметра, функция close закрывает файл, связанный с текущим дескриптором, установленным функцией select().

    При возникновении ошибок закрытия файла их можно обнаружить применяя специальную переменную $!:
    close ( FILE ) or die "Ошибка закрытия файла: $!";

    closedir

    Закрывает каталог, ассоциированный с дескриптором каталога, заданным параметром ДЕСКРИПТОР. Возвращает булево значение Истина, если каталог успешно закрыт.
    closedir ДЕСКРИПТОР

    fcntl

    Реализует системную команду Unix fcntl(2). Перед использованием следует получить доступ к определениям системных констант оператором use Fcntl.
    Возвращаемое значение: если системная функция возвращает -1, то функция Perl - неопределенное значение; если системная функция возвращает 0, то функция Perl строку "0 but true"; если системная функция возвращает какое-либо другое значение, функция Perl возвращает это же значение.
    fcntl ДЕСКРИПТОР, ФУНКЦИЯ, СКАЛЯР

    glob

    Возвращает найденные в текущем каталоге файлы, имена которых удовлетворяют заданному шаблону (с использованием метасимволов Unix "*","?"). Значением выражения должна быть строка, содержащая шаблон имен файлов.
    glob ВЫРАЖЕНИЕ

    ioctl

    Реализует системную команду Unix ioctl(2). Перед использованием следует получить доступ к определениям системных констант оператором require "ioctl.ph";
    Возвращаемое значение:
    если системная функция возвращает -1, то функция Perl - неопределенное значение;
    если системная функция возвращает 0, то функция Perl строку "0 but true";
    если системная функция возвращает какое-либо другое значение, функция Perl возвращает это же значение.
    fcntl ДЕСКРИПТОР, ФУНКЦИЯ, СКАЛЯР

    link

    Создает новую "жесткую" ссылку на файл, заданный параметром СТАРЫЙ. Возвращает булево значение Истина в случае успешного создания ссылки и Ложь в противном случае.
    link СТАРЫЙ, НОВЫЙ

    lstat

    Возвращает список значений полей структуры индекснего дескриптора символической ссылки на файл. Если параметр опущен, то используется значение специальной переменной $_.
    lstat [ДЕСКРИПТОР]
    lstat [ВЫРАЖЕНИЕ]
    Используется для получения информации о символических ссылках. Возвращает список значений полей структуры индексного дескриптора самой ссылки, а не файла, на который она ссылается. Эта функция работает аналогично функции stat().
    mkdir

    Создание нового каталога с именем, заданным в параметре КАТАЛОГ, и режимом доступа, определяемым параметром РЕЖИМ. При успешном создании каталога возвращает булево значение Истина, в противном случае Ложь и в переменную $! заносится сообщение об ошибке.
    mkdir КАТАЛОГ, РЕЖИМ

    open
    Синтаксис :
    open ДЕСКРИПТОР, ИМЯ_ФАЙЛА;
    open ДЕСКРИПТОР;

    Для доступа к файлу из программы Perl необходим дескриптор. Для создания дескриптора используется функция open(). При выполнении операции open с заданым в параметрах именем файла открывается соответствующий файл и создается дескриптор этого файла. В качестве дескриптора файла можно использовать выражение - его значение и будет именем дескриптора. Имя файла задается непосредственно в виде строкового литерала или выражения, значением которого является строка. Операция open без имени файла открывает файл, имя которого содержится в скалярной переменной $ДЕСКРИПТОР, которая не может быть лексической переменной, определенной функцией my().
    Пример :
    #! perl -w
    $var = "out.dat";
    $FILE4 = "file4.dat";
    open FILE1, "in.dat";                # Имя файла задано строкой
    open FILE2, $var;                    # Имя файла задано
                                           переменной
    open FILE3, "/perlourbook/01/".$var; # Имя файла вычисляется 
                                           в выражении
    open FILE4;                          # Имя файла в 
                                           переменной $FILE4
    
    Если задано не полное имя файла, то открывается файл с указанным именем и расположенный в том же каталоге, что и программа Perl. Можно задавать полное имя файла, однако следует иметь в виду, что оно зависит от используемой операйионной системы. Например, в Windows следует обязательно задавать имя диска: d:/perlbook/file1.doc

    Любой файл можно открыть в одном из следующих режимов: чтения, записи или добавления в конец файла. Это осуществляется присоединением соответствующего префикса к имени файла:
  • < (чтение)
  • > (запись)
  • >> (добавление)
    Если префикс опущен, то по умолчанию файл открывается в режиме чтения.
    Запись информации в файл, открытый в режиме записи, осуществляется в начало файла, что приводит к уничтожению содержащейся в нем до его открытия информации.
    Информация, содержащаяся в файле, открытом в режиме добавления, не уничтожается, новые записи добавляются в конец файла.
    Если при открытии файла в режиме записи или добавления не существует файла с указанным именем, то он создается, что оличает эти режимы открытия файла от режима чтения, при котором файл должен существовать. В противном случае операция открытия завершается с ошибкой и соответствующий дескриптор не создается.

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

  • opendir

    Открытие каталога, имя которого равно значению параметра ВЫРАЖЕНИЕ, и связывает его с дескриптором, определяемым параметром ДЕСКРИПТОР. Имена дескрипторов каталогов хранаятся в собственном пространстве имен таблицы имен Perl.
    opendir ДЕСКРИПТОР, ВЫРАЖЕНИЕ

    readlink

    Возвращает значение сиволической ссылки, определяемой параметром ВЫРАЖЕНИЕ, если символические ссылки реализуются операционной системой; в противном случае - фатальная ошибка. Если при получении значения символической ссылки были получены системные ошибки, возвращает неопределенное значение и в специальную переменную $! заносится сообщение об ошибке. Если параметр опущен, используется значение переменной $_.
    readlink [ВЫРАЖЕНИЕ]

    rename

    Переименовывает файл. Возвращает 1 в случае успешного переименования и 0 в противном случае.
    rename СТАРОЕ_ИМЯ, НОВОЕ_ИМЯ

    stat
    В файловой структуре UNIX информация о файле храниться в его индексном дескрипторе (штщву). Структура индексного дескриптора состоит из 13 полей, для которых используются специальные обозначения:
    ПолеОписание
    devНомер устройства в файловой системе
    inoНомер индексного дескриптора
    modeРежим файла (тип и права доступа)
    nlinkКоличество жестких ссылок на файл (в отсутствии ссылок равно 1)
    uidЧисловой идентификатор владельца файла
    gidЧисловой идентификатор группы владельца файла
    rdevИдентификатор устройства (только для специальных файлов)
    sizeРазмер файла в байтах
    atimeВремя последнего обращения к файлу с начала эпохи
    mtimeВремя последнего изменения файла с начала эпохи
    ctimeВремя изменения индексного дескриптора с начала эпохи
    blksizeПредпочтительный размер блока для операций ввода/вывода
    blocksФактическое количество выделенных блоков для размещения файла


    Начало эпохи датируется 1 января 1970 года 0 часов 0 минут.

    Не все перечисленные поля структуры индексного дескриптора поддерживаются всеми файловыми системами.

    Функция stat() предназначена для получения значений полей структуры индексного дескриптора файла. Ее единственным параметорм может быть либо имя файла, либо дескриптор открытого в программе файла. Она возвращает список из 13 элементов, содержащих значения полей структуры индексного дескриптора файла в том порядке, как они перечислены в таблице.
    Типичное использование в программе Perl представлено ниже:
    ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
    $atime,$mtime,$ctime,$blksize,$blocks) = stat($filename);

    Присваивание значение полей списку скалярных переменных с идентификаторами, соответствующими названиям полей, способствует лучшей читаемости программы, чем присваивание массиву скаляров:
    @inode = stat($filename);

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

    Если при обращении к функции stat() не указан параметр, то она возвращает структуру индексного дескриптора файла, чье имя содержится в специальной переменной $_.

    Функция получения информации о файле при успешном выполнении в списковом контексте возвращает список значений полей структуры индексного дескриптора файла или пустой список в случае неудачного завершения. В скалярном контексте она возвращает булево значение Истина или Ложь в зависимости от результатов своего выполнения.

    Для удобства использования информации о файле функция stat() при успешном выполнении кэширует полученные значения полей. Если вызвать эту функцию со специальным дескриптором файла _ (символ подчеркивания), то она возвратит информацию, хранящуюся в кэше от предыдущего ее вызова. Это позволяет проверять различные атрибуты файла без повторного вызова функции stat() или сохранения результатов ее выполнения в переменных программы.

    Функцию stat() можно использовать для получения структуры индексного дескриптора не только файла, но и жестких ссылок на него, а также каталогов, так как они являются также файлами, блоки данных которых содержат имена файлов каталога и их числовых индексных дескрипторов.

    symlink

    Создание символической ссылки (параметр НОВОЕ_ИМЯ) на файл (параметр СТАРОЕ_ИМЯ). Возвращает 1 в случае успешного создания символической ссылки и 0 в противном случае.
    symlink СТАРОЕ_ИМЯ, НОВОЕ_ИМЯ

    umask

    Устанавливает маску режима доступа процесса, заданную значением параметра ВЫРАЖЕНИЕ (восьмеричное число), и возвращает предыдущее значение маски режима доступа.
    umask ВЫРАЖЕНИЕ

    unlink

    Удаление файлов, определенных параметром СПИСОК. Возвращает количество успешно удаленных файлов.
    unlink СПИСОК

    utime
    Синтаксис :
    utime СПИСОК

    В структуре индексного дескриптора файла существует три поля, в которых храниться время последнего обращения (atime) к файлу, его изменения (mtime) файла и изменения индексного дескриптора (ctime). Функцией utime() можно изменить время последнего обращения и модификации файла. Ее параметром является список, содержащий имена обрабатываемых файлов, причем первые два элемента списка - числовые значения нового времени последнего доступа и модификации:

    @files = ("file1.dat", "file2.dat");
    $now = time;
    utime $now, $now, @files;

    В этом фрагменте кода время последнего доступа и модификации файлов из списка @files изменяется на текущее время, полученное с помощью функции time.

    Отметим, что при выполнении функции utime() изменяется и время последней модификации индексного дескриптора (ctime) - оно устанавливается равным текущему времени. Возвращаемым значением является количество файлов, для которых операция изменения времени последнего доступа и модификации прошла успешно.

    Функции, относящиеся к управлению выполнением программы

    caller

    Возвращает контекст выполняемой подпрограммы, если вызвана без параметра. В скалярном контексте возвращает имя пакета, в котором находится вызывающая данную подпрограмму (т.е. если наша подпрограмма вызывается из другой подпрограммы, функции eval() или require() ), или неопределенное значение в противном случае. В списковом контексте возвращает список с разнообразными сведениями. Можно передать в качестве параметра число, определяющее уровень вложенности получаемой информации, т.е к какой подпрограмме она относится: 0 - наша подпрограмма; 1 - подпрограмма, вызывающая нашу, и т.д.
    Полный синтаксис:

    ($package, $filename, $line, $subroutine, $hasargs, $wantarray, $evaltext, $is_require) = caller($i);
    die

    Вне тела функции eval() выводит значения элементов списка, заданного параметром СПИСОК, в стандартный файл ошибок STDERR и завершает выполнение сценария Perl с текущим значением специальной переменной $!. Если используется в теле функции eval(), то сообщение об ошибке помешается в переменную $@ и функция eval() заверщается с неопределенным значением. Такое поведение позволяет использовать функцию die() для генерирования исключительных состояний.
    die СПИСОК

    do

    В действительности не является функцией. Выполняет последовательность операторов Perl, заданных в блоке БЛОК, и возвращает значение последнего выполненного оператора. Если параметром является ВЫРАЖЕНИЕ, то рассматривает его значение как имя файла, который загружает и выполняет как последовательность операторов Perl. Если не удается прочитать файл, возвращает неопределенное значение и помещает в переменную $! сообщение об ошибке; если не может откомпилировать файл, то также возвращает неопределенное значение и помещает сообщение об ошибке в переменную $@. Если содержимое файла успешно откомпилированно, то возвращает значение последнего выполненного оператора.
    do БЛОК
    do ВЫРАЖЕНИЕ

    dump

    Создание дампа ядра, которое системной командой undump может быть преобразованно в двоичный выполняемый файл. Если задан параметр МЕТКА, то при повторном вычислении двоичного файла, сначала выполнится оператор goto МЕТКА;. Функция устаревшая - существует компилятор из Perl в C, который выполняет ее функцию.
    dump МЕТКА

    eval
    Синтаксис 1:
    eval EXPR

    Функция eval() рассматривает параметр EXPR как текст Perl-программы, кампилирует его и, если не обнаруживает ошибок, выполняет в текущем вычислительном окружении. Если параметр EXPR отсутствует, вместо него по умолчанию используется глобальная переменная $_. Компиляция програмного кода EXPR осуществляется при каждом вызове функции eval() во время выполнения основной программы. Если выполнения мини-программы EXPR завершается успешно, функция eval() возвращает значение последнего выражения, вычисленного внутри EXPR. Если код EXPR содержит синтаксические ошибки, или обращение к функции die(), или возникла ошибка во время выполнения EXPR, то в специальную переменную $@ помещается сообщение об ошибке, а функция eval() возвращает неопределенное значение.

    Если скалярной переменной не присвоено никакое допустимое значение (число, строка или ссылка), то говорят, что она имеет неопределенное значение. Неопределенные значения возникают в различных случаях, например, при попытке чтения данных после достижения конца файла или в результате системных ошибок. Неопределенное значение представляется пустой строкой "", но его следует отличать от определенного значения, равного "". Например, в результате выполнения операторов

    $e = eval '$a = 1/0'; # деление на 0
    $b = "";
    print "a= $a\n" if defined $a;
    print "e= $e\n" if defined $e;
    print "b= $b\n" if defined $b;

    переменные $a и $e будут иметь неопределенное значение, а переменная $b - определенное значение "".

    Для того чтобы определить, имеет выражение EXPR определенное значение или нет, существует функция defined EXPR, возвращающая соответствующее булевское значение. В данном примере результатом выполнения будет вывод единственной строки
    b=

    Специальная переменная $@ служит для запоминания сообщения об ошибке, возникшей при последнем обращении к функции eval().

    Существует вторая форма функции eval()
    Синтаксис 2:
    eval BLOCK,

    где BLOCK придставляет собой блок - последовательность операторов, заключенную в фигурные скобки. Вторая форма отличается от первой тем, что синтаксический анализ параметра BLOCK осуществляется всего один раз - во время компиляции основной программы, содержащей обращение к функции eval(). Таким образом, если параметр BLOCK содержит синтаксические ошибки, то они обнаружатся на этапе компиляции основной программы. При использовании первой формы синтаксические ошибки обнаружатся только во время выполнения.

    Основным применением функции eval() является перехватывание исключений. Исключением мы называем ошибку, возникающую при выполнении программы, когда нормальная последовательность выполнения прерывается (например, при делении на нуль). Обычно реакцией на исключение является аварийное завершение программы. Язык Perl предоставляет возможность перехватывать исключения без аварийного выхода. Если исключение возникло в основной программе, то программа завершается. Если ошибка возникла внутри мини-программы функции eval(), то аварийно завершается только функция eval(), а основная программа продолжает выполняться и может реагировать на возникшую ошибку, сообщение о которой ей достанется через переменную $@.

    В следующем примере функция eval() применяется для перехватывания ошибки, связянной с делением на 0 при вычислении функции ctg(x). Используются встроенные функции sin, cos и warn. Последняя функция осуществляет вывод сообщения, задаваемого ее аргументом, на стандартное устройство вывода ошибок STDERR.

    Пример :
    #!/bin/perl
    $fi = 0.314159265358979;
    $f = '$ctg = cod($x)/sin($x)';
    for $i (0..10) {
      $x = $i*$fi;
      eval $f;
      print "x= $x     ctg(x) = $stg\n" if defined $ctg;
      warn "x= $x ", $@ if not defined $ctg;
    };
    Вывод программы выглядит следующим образом

    x= 0 Illegal division zero at (eval 1) line 1.
    x= 0.314159265358979 ctg(x) = 3.07768353717526
    x= 0.628318530717958 ctg(x) = 1.37638192047118
    . . .

    Иногда бывает полезно искусственно вызвать исключительную ситуацию. Для этого можно воспользоваться функцией die() LIST. Назначение функции die() - генерировать исключения. Если функция die() вызывается в основной программе вне функции eval(), то она осуществляет аварийное завершение основной программы и выводит сообщение об ошибке LIST на стандартное устройство вывода ошибок STDERR. Если она вызывается внутри функции eval(), то осуществляется аварийное завершение eval() и помещает сообщение об ошибке в специальную переменную $@.

    exit

    Немедленно прекращает выполнение программы с кодом завершения, равным значению параметра ВЫРАЖЕНИЕ. Если параметр не задан, программа завершается с кодом 0.
    exit [ВЫРАЖЕНИЕ]

    return

    Выход из подпрограммы, функции eval() или do ФАЙЛ с кодом завершения равным значению параметра ВЫРАЖЕНИЕ. Если в подпрограмме, функции eval() или do ФАЙЛ не используется эта функция, то они завершаются с кодом, равным значению последнего выполненного оператора.
    return ВЫРАЖЕНИЕ

    sub

    В действительности это не функция, а объявление подпрограммы: анонимной (без параметрп ИМЯ, но с блоком операторов БЛОК), прототипа (без блока операторов БЛОК) и нормальной.
    sub БЛОК
    sub ИМЯ
    sub ИМЯ БЛОК

    wantarray

    Возвращает значение Истина, если контексту выполняемой подпрограммы требуется списковое значение, и Ложь, если требуется скалярное значение. Возвращает неопределенное значение, если подпрограмме требуется безразличный (void) контекст.
    wantarray

    Функции, относящиеся к области видимости переменных

    import

    Встпвляет пространство имен одного модуля в другой. Это не встроенная функция, а всего лищь метод, наследуемый от модуля (параметр МОДУЛЬ), которому необходимо экспортировать свои имена (параметр СПИСОК) в другой модуль.
    import МОДУЛЬ СПИСОК

    local
    Функция local() используется для объявления и инициализации одной или нескольких переменных:

    local EXPR
    local ($myvar, $@mylist, %myhash);
    local $pi = 3.14159;
    local ($pi, $exp) = (3.14159, 2.71828);

    но, в отличие от функции my() она создает не локальные переменные, а временные значения для глобальных переменных внутри:
    • подпрограммы;
    • заключенного в фигурные скобки блока операторов;
    • выражения, пареданного на выполнение функции eval();
    • файла;
    в зависимости от того, в каком месте вызвана для объявления переменных сама функция local(). Если функция local() применяется для описания нескольких переменных, они должны быть заключены в скобки. Если глобальня перемнная, объявленная при помощи этой функции, ранее встречалась до объявления и имела некоторое значение, то это значение сохраняется в скрытом стеке и восстанавливается после выхода соответственно из подпрограммы, блока, функции eval() или файла. Переменная, объявленная при помощи функции local(), или, точнее, ее временное значение, доступна для любой функции, вызванной внутри подпрограммы, блока, функции eval() или файла, в которых сделано объявление. Такую переменную называют динамической, а ее область видимости - динамической областью видимости. В названии отражается тот факт, что область видимости переменной динамически изменяется с каждым вызовом функции, получающей доступ к этой переменной.

    Пример :
    sub f1{
      local ($x) = "aaaa";
      my($y)     = "bbbb";
      print("f1: x = $x\n");
      print("f1: y = $y\n\n");
      f2();
      print("f1: x = $x\n");
      print("f1: y = $y\n\n");
    }
    sub f2{
      print("f2: x = $x\n");
      print("f2: y = $y\n\n");
      $x = "cccc";
      $y = "dddd";
      print("f2: x = $x\n");
      print("f2: y = $y\n\n");
    }
    f1;
    
    Результатом выполнения данного примера будет следующий вывод:
    f1: x = aaaa
    f1: y = bbbb

    f2: x = aaaa
    f2: y =

    f2: x = cccc
    f2: y = dddd

    f1: x = cccc
    f1: y = bbbb

    Как видно из приведенного результата, функция f2() не имеет доступа к переменной $y, объявленной при помощи функции my() внутри функции f1(), и,напртив, имеет доступ к переменной $x, объявленной внутри f1() при помощи функции local().

    my
    Функция my() используется для объявления одной или нескольких переменных локальными:

    my EXPR

    и ограничивает их область действия:
    • подпрограммой;
    • заключенным в фигурные скобки блоком операторов;
    • выражением, пареданным на выполнение функции eval();
    • файлом, в зависимости от того, в каком месте вызвана для объявления переменных сама функция my().
    Если выражение EXPR содержит список переменных, то он должен быть заключен в скобки:

    my ($myvar, @mylist, %myhash);

    Одновременно с объявлением переменные могут быть инициализированны:

    my $pi = 3.14159;
    my ($pi, $exp) = (3.14159, 2.71828);

    Переменные, объявленные при помощи функции my(), доступны в своей области действия только для подпрограмм, определенных в этой области. Для подпрограмм, определенных за ее пределами, они недоступны. Такие переменные называются лексическими, а саму область видимости - лексической или статической областью видимости.

    Пример :
    sub f1{
      local ($x) = "aaaa";
      my($y)     = "bbbb";
      print("f1: x = $x\n");
      print("f1: y = $y\n\n");
      f2();
      print("f1: x = $x\n");
      print("f1: y = $y\n\n");
    }
    sub f2{
      print("f2: x = $x\n");
      print("f2: y = $y\n\n");
      $x = "cccc";
      $y = "dddd";
      print("f2: x = $x\n");
      print("f2: y = $y\n\n");
    }
    f1;
    
    Результатом выполнения данного примера будет следующий вывод:
    f1: x = aaaa
    f1: y = bbbb

    f2: x = aaaa
    f2: y =

    f2: x = cccc
    f2: y = dddd

    f1: x = cccc
    f1: y = bbbb

    Как видно из приведенного результата, функция f2() не имеет доступа к переменной $y, объявленной при помощи функции my() внутри функции f1(), и,напртив, имеет доступ к переменной $x, объявленной внутри f1() при помощи функции local().

    package

    Определяет отдельное глобальное пространство имен (пакет):
    все неопределенные динамические идентификаторы (включая те, которые объявлены через local(), но не my() ) будут храниться в нем. Для доступа к ним вне пакета следует указывать префикс, представляющий имя пакета с последующими двумя символами двоеточий "::". Область видимости переменных пакета распространяется до конца блока операторов, в котором расположен пакет или до нового объявления пакета. Если опущено имя пакета, то предписывает, чтобы все индентификаторы были определены, включая имена функций.
    package [ИМЯ_ПАКЕТА]

    use

    Загружает модуль во время компиляции; если модуль не доступен, то компиляция всей программы прекращается.
    use МОДУЛЬ СПИСОК
    use МОДУЛЬ
    use МОДУЛЬ ВЕРСИЯ СПИСОК
    use ВЕРСИЯ

    Функции, относящиеся к модулям Perl

    no

    Отказ от импортирования символических имен (параметр СПИСОК) модуля (параметр МОДУЛЬ) во время компиляции программы. Является антонимом функции use.
    no МОДУЛЬ СПИСОК

    require

    Загружает модуль или класс, имя которого является значением параметра ВЫРАЖЕНИЕ, во время выполнения программы. Если параметр опущен, то используется значение специальной переменной $_. Если значение параметра ВЫРАЖЕНИЕ является число, то оно определяет минимальную версию Perl, необходимую для выполнения программы.
    require [ВЫРАЖЕНИЕ]

    Функции, относящиеся к классам и объектно-ориентированным технологиям

    bless

    После выполнения функции bless() ссылка на субъект Perl (переменную, массив или хеш), определенная параметром ССЫЛКА, становиться ссылкой на объект, определяемый пакетом с именем, равным значению параметра ИМЯ_КЛАССА. Если этот параметр не задан, то подразумевается текущий пакет.Возвращаемое значение - ссылка на объект.
    bless ССЫЛКА, ИМЯ_КЛАССА
    bless ССЫЛКА

    ref

    Если параметр ВЫРАЖЕНИЕ является ссылкой, то возвращает тип субъекта ссылки; в противном случае Ложь. Если параметр опущен, то используется переменная $_. Возвращаемым значением может быть :
    REF,SCALAR,ARRAY,HASH,CODE,GLOB или имя пакета, если ссылка была переопределена функцией bless().
    ref [ВЫРАЖЕНИЕ]

    tie

    Связывает переменную, определенную параметром ПЕРЕМЕННАЯ, с классом ИМЯ_КЛАССА, который будет обеспечивать реализацию методов доступа для этой переменной, список которых зависит от типа связываемой переменной (скаляр, массив, хеш, дескриптор файла). Операции доступа к связанной переменной (например, получение и присваивание значения для скалярной переменной или присваивание значения элементу массива и т.д.) автоматически вызывают соответствующие методы определенного класса. Элементы параметра СПИСОК передаются соответствующим конструкторам этого класса в зависимости от типа связываемой переменной; TIESCALAR(), TIEARRAY(), TIEHASH() или TIEHANDLE(). Возвращаемым значением функции является объект класса, к которому привязывается переменная.
    tie ПЕРЕМЕННАЯ, ИМЯ_КЛАССА, СПИСОК

    tied

    Возвращает объект класса, с которым связана переменная, определенная параметром ПЕРЕМЕННАЯ, с помощью функции tie().
    $object = tied ПЕРЕМЕННАЯ

    untie

    Разрывает созданную функцией tie() связь между переменной, определенной параметром ПЕРЕМЕННАЯ, и классом, реализующим методы доступа к ней.
    untie ПЕРЕМЕННАЯ

    Разные функции

    defined

    Проверяет, не равно ли значение выражения, заданное параметром ВЫРАЖЕНИЕ, неопределенной величине undef; если не равно, то возвращает булево значение Истина, в противном случае Ложь. Если параметр функции опущен, то используется значение специальной переменной $_.
    defined [ВЫРАЖЕНИЕ]

    formline

    Внутренняя функция, используемая операцией format, но ее можно вызывать и явным образом. Выводит значения элементов списка, представленного параметром СПИСОК, в специальную переменную $^A - аккумулятор форматного вывода. Вывод осуществляется в соответствии с заданной параметром ШАБЛОН строкой шаблонов. Управляющие символы "~" и "~~" игнорируются. Всегда возвращает значение Истина.
    formline ШАБЛОН, СПИСОК

    reset

    Используется для очистки переменных и переустановки команды поиска ?образец? (обычно в блоке continue цикла). Значением параметра ВЫРАЖЕНИЕ должна быть строка, представляющая символ, с которого начинается имя переменной (допустим дефис "-" для задания интервалов символов). Если параметр опущен, то переустанавливает команду поиска ?образец?, чтобы она могла осуществить очередной поиск в соответствии с заданным образцом. Действует только на переменные текущего пакета. Всегда возвращает значение 1.
    reset [ВЫРАЖЕНИЕ]

    scalar

    Вычисляет выражение, определяемое параметром ВЫРАЖЕНИЕ, в скалярном контексте и возвращает вычисленное значение.
    scalar ВЫРАЖЕНИЕ

    undef

    Унарная операция, присваивающая lvalue, представленным параметром ВЫРАЖЕНИЕ, неопределенное значение. Применяется к скалярным переменным ($), массивам скаляров (@), хешам (%), подпрограммам (&) и глобальным типам(*). Всегда возвращает неопределенное значение. Вызванная без параметра, просто вычисляет неопределенное значение, которое можно использовать, например, в качестве возвращаемого значения функции.
    undef [ВЫРАЖЕНИЕ]

    vec

    Рассматривает строковое значение параметра ВЫРАЖЕНИЕ как последовательность целых чисел без знака и возвращает значение битового поля, номер которого определяется значением параметра СМЕЩЕНИЕ (первое поле в строке всегда имеет номер 0). Параметр БИТЫ_ПОЛЯ задает ширину битового поля в битах. Может использоваться в качестве левого значения операции присваивания (в этом случае параметры должны быть заключены в скобки).
    vec ВЫРАЖЕНИЕ, СМЕЩЕНИЕ, БИТЫ_ПОЛЯ

    Функции для работы с процессами и группами процессов

    alarm

    Определяет количество секунд (параметр СЕКУНДЫ), через который должен быть выдан сигнал SIGALARM. Если параметр отсутствует, используется значение специальной переменной $_.
    alarm [СЕКУНДЫ]

    exec

    Выполняет заданную параметром СПИСОК команду, прекращая дальнейшее выполнение программы Perl. Никогда не возвращает кода возврата выполнения команды, только в случае, если команда не существует, возвращает булево значение Ложь. Если СПИСОК состоит более чем из одного элемента, вызывает системную команду execvp(3) и передает ей в качестве параметров значения списка, которая вызывает заданную первым элементом списка команду, интерпретируя оставшиеся элементы как ее параметры. Если список представлен одной скалярной переменной или массивом из одного элемента, то его значение проверяется на наличие метасимволов командного интерпретатора shell. Если таковые обнаружены, то вся строка передается анализатору shell(в Unix это /bin/sh -c); в противном случае она разбивается на слова и передается в качестве параметра системной команде execvp(). В системной переменной $0 сохраняется имя выполняемой команды. В форме с параметром ПРОГРАММА выполняет команду, заданную этим параметром, а в системную переменную $0 заносится содержимое первого элемента списка. Таким образом можно скрыть от программы Perl имя истинной выполняемой команды.
    exec СПИСОК
    exec ПРОГРАММА СПИСОК
    

    fork

    Осуществляет вызов системной функции fork(2), создающей новый процесс. Возвращает идентификатор порожденного процесса в родительский процесс, значение 0 в порожденный процесс и неопределенное значение undef, если не удалось создать новый процесс.
    fork

    getpgrp

    Возвращает текущую группу процесса с заданным идентификатором PID. Если значение параметра PID равно 0, или он опущен, то возвращается текущая группа текущего процесса.
    getpgrp PID

    getppid

    Возвращает идентификатор процесса (ID) родительского процесса.
    getppid

    getpriority

    Возвращает текщий приоритет процесса, группы процесса или пользователя.
    getpriority WHICH, WHO

    kill

    Посылает сигнал процессам, определенным в элементах списка параметра СПИСОК. Первым элементом списка должен быть посылаемый сигнал; если он отрицательный, то уничтожаются группы процессов, а не сами процессы. Возвращает количество процессов, которым передан сигнал.
    kill СПИСОК

    pipe

    Открывает пару соединенных дескрипторов файлов, образуя програмный канал (pipe). Записанные в один файл данные можно прочитать из другого. При передачи данных используются буферы стандартной системы ввода/вывода stdio.
    pipe ДЕСКРИПТОР_ЧТЕНИЯ, ДЕСКРИПТОР_ЗАПИСИ

    setpgrp

    Устанавливает для процесса с заданным идентификатором (параметр PID) текущую группу равной значению параметра PGRP. Значение 0 идентификатора процесса соответствует текущему процессу. Если оба параметра опущены, то по умолчанию их значения принимаются равными 0.
    setpgrp PID, PGRP

    setpriority

    Устанавливает текущий приоритет процесса, группы процесса или пользователя.
    setpriority WHICH, WHO, PRIORITY

    sleep

    Приостанавливает работу программы Perl на заданное значением параметра ВЫРАЖЕНИЕ количество секунд или на всегда, если параметр отсутствует. Выходит из состояния ожидания раньше указанного времени, если процесс получает сигнал GIGALARM. Возвращает действительное количество секунд нахождения программы в состоянии ожидания.
    sleep ВЫРАЖЕНИЕ

    system

    Аналогична функции exec(), но для выполнения команды порождает новый процесс, окончания которого ожидает родительский процесс, прежде чем продолжить свое выполнение. Все, что сказано относительно параметров функции exec(), распространяется и на параметры функции system(). Возвращает такой же код завершения команды, что и функция wait(); для получения истинного кода завершения полученное значение следует разделить на 256.
    system СПИСОК
    system ПРОГРАММА СПИСОК

    times

    Возвращает четырехэлементный список, содержащий пользовательское и системное время для процесса и порожденного им процесса.
    ($user, $system, $cuser, $csystem) = times;
    

    wait

    Ожидает завершение порожденного процесса и возвращает идентификатор завершенного порожденного процесса или -1 в случае, если порожденных процессов не существует. В специальной переменной $? сохраняется статус завершения.
    wait

    waitpid

    Ожидает завершения процесса с заданным в параметре PID идентификатором процесса (-1 означает любой процесс) и возвращает идентификатор завершенного порожденного процесса или -1 в случае, если порожденных процессов не существует. Параметр FLAGS представляет набор флагов, уточняющих действие функции. Например, флаг WHOANG означает не блокирующее ожидание завершения любого процесса. Во всех системах реализован флаг 0, означающий блокирующий вызов. В специальной переменной $? сохраняется статус завершения.
    waitpid PID, FLAGS

    Низкоуровневые функции работы с сокетами

    accept

    Принимает входящее подключение через сокет; работает анологично системной команде accept(2). Возвращает упакованный адрес сокета в случае успешного подключения; иначе булево значение Ложь.
    accept НОВЫЙ_СОКЕТ, РОДОВОЙ_СОКЕТ

    bind

    Назначает сокету, определенному параметром СОКЕТ, сетевой адрес, заданный параметром ИМЯ. Имя сокета представляет собой упакованный адрес сокета соответствующего типа. Возвращает булево значение Истина в случае успешного назначения и Ложь в противном случае.
    bind СОКЕТ, ИМЯ

    connect

    Осуществляет подключение сокета, определенного параметром СОКЕТ, к удаленному сокету, имя которого заданно параметром ИМЯ. Имя удаленного сокета представляет собой упакованный адрес сокета соответствующего типа. Возвращает булево значение Истина в случае успешного назначения и Ложь в противном случае.
    connect СОКЕТ, ИМЯ

    getpeername

    Возвращает упакованный адрес удаленного сокета, к которому подключен СОКЕТ функцией connect().
    getpeername СОКЕТ

    getsockname

    Возвращает упакованный адрес сокета программы, который подключен функцией connect() к удаленному сокету.
    getsockname СОКЕТ

    getsockopt

    Возвращает значение затребованной опции (параметр ИМЯ_ОПЦИИ) сокета (параметр СОКЕТ) заданного уровня (параметр УРОВЕНЬ) или неопределенное значение в случае возникновения ошибки.
    getsockopt СОКЕТ, УРОВЕНЬ, ИМЯ_ОПЦИИ

    listen

    Включает режим приема для указанного сокета, регистрируя его как сервер. Возвращает булево значение Истина в случае успешного включения и Ложь в противном случае.
    listen СОКЕТ, РАЗМЕР_ОЧЕРЕДИ

    recv

    Получение заданного значением параметра ДЛИНА количества байтов через указанный сокет (параметр СОКЕТ) и сохранение их в скалярной переменной СКАЛЯР. Возвращает адреса удаленного сокета, из которого прочитанны данные, или неопределенное значение в случае возникновения ошибки при получении данных. В действительности вызывает C- функцию recvfrom(); параметр ФЛАГИ полностью соответствует аналогичному параметру указанной функции C.
    recv СОКЕТ, СКАЛЯР, ДЛИНА, ФЛАГИ

    send

    Посылает строку сообщения (параметр СООБЩЕНИЕ) через сокет, заданный параметром СОКЕТ. Параметр ФЛАГИ имеет то же смусл, что и при вызове системной функции с одноименным названием. Если сокет не подключен к удаленному сокету, то параметр АДРЕС определяет адрес сокета, к которому следует подключиться. Возвращает количество переданных символов или неопределенное значение в случае возникновения ошибки.
    send СОКЕТ, СООБЩЕНИЕ, ФЛАГИ[, АДРЕС]
    

    setsockopt

    Устанавливает заданную параметром ИМЯ_ОПЦИИ опцию сокета. Возвращает неопределенное значение undef в случае возникновения ошибки.
    setsockopt СОКЕТ, УРОВЕНЬ, ИМЯ_ОПЦИИ, ЗНАЧЕНИЕ

    shutdown

    Закрывает указанный в параметре СОКЕТ сокет на выполнение определенных операций, задаваемых параметром ДЕЙСТВИЕ: 0 - прекращает чтение, 1 - прекращает запись, 2 - прекращает использование сокета.
    shutdown СОКЕТ, ДЕЙСТВИЕ

    socket

    Открывает сокет указанного типа и ассоциирует его с дескриптором сокета, заданного параметром СОКЕТ. Параметры ОБЛАСТЬ, ТИП и ПРОТОКОЛ аналогичны таким же параметрам при вызове системной функции с таким же именем. Перед использованием этой функции следует оператором use Socket; импортировать необходимые определения.
    socket СОКЕТ, ОБЛАСТЬ, ТИП, ПРОТОКОЛ

    socketpair

    Создает безимянную пару двунаправленных сокетов указанного типа в заданной области. Параметры ОБЛАСТЬ, ТИП и ПРОТОКОЛ аналогичны таким же параметрам привызове системной функции с таким же именем. Возвращает булево значение Истина в случае успешного создания пары сокетов.
    socketpair СОКЕТ1, СОКЕТ1, ОБЛАСТЬ, ТИП, ПРОТОКОЛ

    Функции для работы со временем и датой

    gmtime

    Преобразует значение даты и времени, полученное функцией time() в 9-элементный массив, соответствующий временной зоне Гринвича. Все элементы массива являются числами. Месяцы ($mon) нумеруются целыми числами от 0 до 11; дни недели ($wday) целыми от 0 до 6, причем 0 соответствует воскресенью; год ($year) отсчитывается от года 1900. В скалярном контексте возвращает такую же структуру даты, что и системная функция ctime(3): "Thu Oct 13 04:54:34 2000"
    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=gmtime(time);

    localtime

    Полностью соответствует функции gmtime() за исключением того, что значения элементов возвращаемого массива соответствуют зоне местного времени, а не гринвичской.
    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);

    time

    Возвращает число секунд, прошедших от начала эпохи - 1 января 1970 года.
    time

    times

    Возвращает четырехэлементный массив, содержащий пользовательское и системное время для процесса и порожденного им процесса.
    ($user,$system,$cuser,$csystem)=times;

    Информация о пользователях и группах

    endpwent

    Закрытие файла паролей после завершения обработки его содержимого.
    endpwent

    getpwent

    Возвращает следующую запись файла паролей при очередном вызове.
    getpwent

    getpwnam

    Получение записи из файла паролей от пользователя по его регистрационному имени.
    getpwnam ИМЯ

    getpwuid

    Получение записи из файла паролей от пользователя по его числовому идентификатору, заданному параметром UID.
    getpwuid UID

    setpwent

    Позиционирование файла паролей на первую запись. последующий вызов функции getpwent() начинает его обработку с первой записи.
    setpwent

    endgrent

    Закрытие файла групп после завершения обработки его содержимого.
    getgrent

    getgrgid

    Получение записи из файла групп о группе по его числовому идентификатору, заданному параметром GID.
    getgrgid GID

    getgrnam

    Получение записи из файла групп о группе по ее имени, заданному параметром ИМЯ.
    getgrnam ИМЯ

    setgrent

    Позиционирование файла групп на первую запись. Последующий вызов функции getgrent() начинает его обработку с первой записи.
    setgrent

    getlogin

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

    Сетевая информация

    endhostent

    Закрытие файла хостов после завершения обработки его содержимого.
    endhostent

    gethostbyaddr

    Получение записи из файла хостов о хосте с заданным IP-адресом и типом.
    
    gethostbyaddr ADDR, ADDRTYPE

    gethostbyname

    Получение записи из файла хостов о хосте с заданным именем.
    gethostbyname ИМЯ

    gethostent

    Возвращает следующую запись файла хостов при очередном вызове.
    gethostent

    sethostent

    Позиционирование файла хостов на первую запись. Последующий вызов функции gethostent() начинает его обработку с первой записи.
    sethostent STAYOPEN

    endnetent

    Закрытие файла сетей после завершения обработки его содержимого.
    endnetent

    getnetbyaddr

    Получение записи из файла сетей о сети с заданным адресом и типом.
    getnetbyaddr ADDR, ADDRTYPE

    getnetbyname

    Получение записи из файла сетей о сети с заданным сетевым именем.
    getnetbyname ИМЯ

    getnetent

    Возвращает следующую запись файла сетей при очередном вызове.
    getnetent

    setnetent

    Позиционирование файла сетей на первую запись. Последующий вызов функции getnetent() начинает его обработку с первой записи.
    setnetent STAYOPEN

    endprotoent

    Закрытие файла протоколов после завершения обработки его содержимого.
    endprotoent

    getprotobyname

    Получение записи из файла протоколов о протоколе с заданным именем.
    getnetbyname ИМЯ

    getprotobynumber

    Получение записи из файла протоколов о протоколе с заданным номером.
    getprotobynumber НОМЕР

    getprotoent

    Возвращает следующую запись файла протоколов при очередном вызове.
    getprotoent

    setprotoent

    Позиционирование файла протоколов на первую запись. Последующий вызов функции getprotoent() начинает его обработку с первой записи.
    setprotoent STAYOPEN

    endservent

    Закрытие файла служб после завершения обработки его содержимого.
    endservent

    getservbyname

    Получение записи из файла служб о службе с заданным именем и протоколом.
    getservbyname ИМЯ, ПРОТОКОЛ

    getservbyport

    Получение записи из файла служб о службе с заданным номером порта и протоколом.
    getservbyport ПОРТ, ПРОТОКОЛ

    getservent

    Возвращает следующую запись файла служб при очередном вызове.
    getservent

    setservent

    Позиционирование файла служб на первую запись. Последующий вызов функции getservent() начинает его обработку с первой записи.
    setservent

    Функции взаимодействия между процессами

    msgctl

    Вызывает системную функцию msgctl(2). Если команда, заданная параметром CMD, является командой IPC_STAT, то параметр ARG должен быть переменной, которая будет содержать структуру msgid_ds. Возвращаемое значение функции аналогично возвращаемому значению функции ioctl(): если системная функция возвращает -1, то функция Perl - строку "0 but true"; если системная функция возвращает какое-либо другое значение, то функция Perl возвращает это же значение. См. также документацию по модулям IPC::SysV и IPC::SysV::Msg.
    msgctl ID, CMD, ARG

    msgget

    Создает очередь сообщений с заданным параметром КЛЮЧ ключом, вызывая системную функцию msgget(2). Возвращает идентификатор очереди сообщений, если она успешно создана, или неопределенное значение в противном случае. См. также жокументацию по модулям IPC::SysV и IPC::SysV::Msg.
    msgget КЛЮЧ, ФЛАГИ

    msgrcv

    Вызывает системную функцию msgrcv для получения сообщения из очереди сообщений с идентификатором, заданным параметром ID, и сохраняя его в переменной, определяемой параметром ПЕРЕМЕННАЯ. Максимальная длина сообщения не может превышать значения, заданного параметром ДЛИНА. Если сообщение получено, то в переменной перед самим сообщением сохраняется его тип. Возвращает булево значение Истина в случае успешного получения сообщения или Ложь в противном случае. См. также документацию по модулям IPC::SysV и IPC::SysV::Msg.
    msgrcv ID, ПЕРЕМЕННАЯ, ДЛИНА, ТИП, ФЛАГИ

    msgsnd

    Вызывает системную функцию msgsnd для посылки сообщения, заданного параметром СООБЩЕНИЕ, в очередь сообщений с идентификатором, заданным параметром ID. Сообщение должно начинаться с типа сообщения, представленного длинным целым числом, которое можно создать функцией pack("l", $type). Возвращает булево значение Истина в случае успешной посылки сообщения и Ложь в противном случае. См. также документацию по модулям IPC::SysV и IPC::SysV::Msg.
    msgsnd ID, СООБЩЕНИЕ, ФЛАГИ

    semctl

    Вызывает системную функцию semctl(). Если команда, заданная параметром CMD, является командой IPC_STAT или GETALL, то параметр ARG должен быть переменной, которая будет содержать возвращаемую форму semid_ds или массив значений семафора. Возвращаемое значение функции аналогично возвращаемому значению функции ioctl(): если системная функция возвращает -1, то функция Perl неопределенное значение; если системная функция возвращает 0, то функция Perl строку "0 but true"; если системная функция возвращает какое-либо другое значение, то функция Perl возвращает это же значение. См. также документацию по модулям IPC::SysV и IPC::SysV::Msg.
    semctl ID, SEMNUM, CMD, ARG

    semget

    Создает набор симафоров, вызывая системную функцию semget. Возвращает идентификатор семафора, если набор успешно создан, или неопределенное значение в противном случае. См. также документацию по модулям IPC::SysV и IPC::SysV::Msg.
    semget KEY, NSEMS, FLAGS

    semop

    Вызывает системную функцию semop для выполнения операций с семафором, например, сигнализация или ожидание. Параметр OPSTRING должен быть упакованным массивом структур semop, каждая из которых создается функцией pack("sss", $semnum, $semop, $semfkag). Количество операций с семафором определяется числом элементов массива OPSTRING. Возвращает булево значение Истина в случае успешного выполнения операций с семафором или Ложь в противном случае. См. также документацию по модулям IPC::SysV и IPC::SysV::Msg.
    semop KEY, OPSTRING

    shmctl

    Вызывает системную функцию shmctl. Если команда, заданная параметром CMD, является командой IPC_STAT, то параметр ARG должен быть переменной, которая будет содержать возвращаемую структуру shmid_ds. Возвращаемое значение функции аналогично возвращаемому значению функции ioctl(): если системная функция возвращает -1, то функция Perl неопределенное значение; если системная функция возвращает 0, то функция Perl строку "0 but true"; если системная функция возвращает какое- либо другое значение, то и функция Perl возвращает это же значение. См. также документацию по модулям IPC::SysV и IPC::SysV::Msg.
    shmctl ID, CMD, ARG

    shmget

    Создает область памяти для совместного использования (разделяемая область памяти), вызывая системную функцию shmget. Возвращает идентификатор разделяемой области памяти, если она успешно создана, или неопределенное значение в противном случае.См. также документацию по модулям IPC::SysV и IPC::SysV::Msg.
    shmget KEY, SIZE, FLAGS

    shmread

    Читает в переменную VAR заданное параметром SIZE количество байт из разделяемой области с идентификатором, определенным параметром ID, начиная с позиции, указанной параметром POS. Возвращает булево значение Истина в случае успешного чтения данных и Ложь в противном случае. См. также документацию по модулям IPC::SysV.
    shmread ID, VAR, POS, SIZE

    shmwrite

    Записывает заданное параметром SIZE количество байт из строки данных STRING в разделяемую область памяти с идентификатором, определяемым параметром ID, начиная с позиции, указанной параметром POS. Если строка данных содержит меньшее количество байт, то добавляются нулевые значения "\0". Возвращает булево значение Истина в случае успешной записи данных и Ложь в противном случае. См. также документацию по модулям IPC::SysV.
    shmwrite ID, STRING, POS, SIZE

    Стандартные модули Perl

    Стандартная постановка Perl включает в себя большое число модулей, в которых представлены разные средства и функции для решения многих задач, возникающих при программировании на Perl. Простым подключением соответствующего модуля к своей программе можно получить необходимые средства для решения конкретной задачи. Более того, все перечисленные ниже модули присутствуют в системах программирования на языке Perl на всех известных платформах. Поэтому, если использовать их в своих разработках, то проблем с переносимостью программ Perl никогда не возникнет.
    AnyDBM_File

    Этот модуль всего лищь загружает один из модулей для связывания хешей Perl с файлами DBM в следующей последовательности: NDBM_File, DB_File, GDBM_File, SDBM_File и ODBM_File. Если установлен модуль NDBM_File, то загружается он; если его нет, то ищется следующий из приведенного списка и т.д. Модуль SDBM_File всегда присутствует, так как он входит в стандартную постановку Perl.
    AutoLoader

    Предоставляет стандартный механизм для отложенной загрузки функций, хранящихся в отдельных файлах на диске. Используется при создания собственных модулей расширения Perl.
    AutoSplit

    Содержит функции, разбивающие программу или модуль Perl на файлы, которые в последствии может обрабатывать модуль AutoLoader. Основное применение - построение библиотечных модулей Perl с автозагрузкой.
    Benchmark

    Содержит набор функций для проведения тестов на быстродействие выполнения отдельных фрагментов кода программы.
    Carp

    Содержит функции carp() и croak() - аналогии функций warn() и die(). Они отображают сообщение с указанием подпрограммы и номера ее строки, откуда вызываются эти функции, тогда как warn() и die() отображают номер строки в коде всей программы.
    Config

    Содержит набор функций для доступа к конфигурационной информации Perl, которую сценарий Configure занес в компьютер при установке Perl.
    Cwd

    Содержит функции для определения полного имени текущего рабочего каталога и его изменения. Эти функции работают надежнее и быстрее, чем соответствующие встроенные функции Perl.
    DB_File

    Позволяет использовать в программе Perl возможности, предоставляемые библиотекой Berkeley DB, предлагая единообразный интерфейс доступа к базам данных разных форматов.
    Devel::SelfStubber

    Генерация шаблонов (заготовок) для самозагружающихся модулей.
    diagnostics

    Позволяет отбражать более полные и развернутые диагностические сообщения компилятора и интерпретатора perl по сравнению с используемой по умолчанию краткой диагностикой.
    DirHandle

    Предоставляет объектный интерфейс к функциям работы с каталогами: opendir(), closedir(), readdir() и rewinddir().
    DynaLoader

    Определяет стандартный интерфейс Perl к механизмам механической загрузки, доступных на большинстве компьютерных платформ. Используется при создании собственных модулей расширения Perl.
    Env

    Perl поддерживает работу с переменными среды через ассоциативный массив %ENV. Модуль позволяет использовать переменные среды как обычные скалярные переменные Perl, используя имена этих переменных в качестве идентификатора переменных Perl. Например, $PATH, $HOME и т.д.
    Exporter

    Реализует метод import(), который обычно наследуется другими модулями вместо определения ими собственных методов импортирования своих определений и функций.
    ExtUtils::Install

    Предоставляет две функции install() и uninstall(), необходимые модулю ExtUtils::MakeMaker для выполнения зависимой от платформы установки и удаления расшерений Perl.
    ExtUtils::Liblist

    Содержит функцию ext(), которая преобразует список библиотек в строки, пригодные для включения в файл Makefile расширения Perl на текущей платформе.
    ExtUtils::MakeMaker

    Автоматизирует создание файла Makefile.pl, необходимого для построения расширения Perl.
    ExtUtils::Manifest

    Содержит функции для создания файла MANIFEST, который содержит список имен файлов (одно имя в строке с необязательным коментарием). Содержимое файла лего прочитать командой awk "{print $1}" MANIFEST. Этот модуль используется модулем ExtUtils::MakeMaker для создания списков файлов, содержащиф функции модуля.
    ExtUtils::Miniperl

    Содержит единственную функцию writemain(), получающую список катологов, содержащих архивные библиотеки, которые необходимы модулям Perl и которые следует включить в новый двоичный файл Perl. Обычно используется из файла Makefile, сгенерированного модулем ExtUtils::MakeMaker. программист непосредственно не работает с этим модулем.
    ExtUtils::MkbootStrap

    Единственная функция этого модуля mkbootstrap() обычно вызывается из файла Makefile соответствующего расширения и создает файл *.bs, необходимый для динамической загрузки в некоторых архитектурах операционных систем.
    ExtUtils::Mksymlists

    Единственная функция этого модуля Mksymlists() создает файлы, которые используются компановщиком некоторых операционных систем при создании совместно используемых (shared) библиотек для динамических расширений Perl. Обычно вызывается из файла Makefile, сгенерированного модулем ExtUtils::MakeMaker при построении расширения.
    ExtUtils::MM_OS2

    Перекрывает методы модуля ExtUtils::MM_Unix, используемые модулем ExtUtils::MakeMaker, для работы в операционной системе OS2.
    ExtUtils::MM_Unix

    Методы этого модуля используются модулем ExtUtils::MakeMaker. Программист никогда не работает с ним, если только он не улучшает модуль EtxUtils::MakeMaker в связи с его переносимостью.
    ExtUtils::MM_VMS

    Перекрывает методы модуля ExtUtils::MM_Unix, используемые модулем ExtUtils_MakeMaker, для работы в операционной системе VMS.
    Fcntl

    Этот модуль всего лишь трансляция заголовочного файла fcntl.h языка C, содержащего определения разных констант.
    File::Basename

    Функции этого модуля осуществляют синтаксический разбор полного имени файла, выделяя ключевые единицы. Можно использовать синтаксис имен файлов разных операционных систем. Например, в Unix ключевыми единицами будет путь, имя файла и расширение.
    File::CheckTree

    Единственная функция этого модуля validate() позволяет выполнять унарные именованные операции проверки над группой файлов, причем для каждого файла группы можно задать свои операции. Все операции проверки выполняются за одно обращение к функции.
    File::Copy

    Содержит единственную функцию copy(), которая копирует группу файлов за одно обращение.
    File::Find

    Содержит две функции поиска файлов по критерию, определенному в пользовательской подпрограмме. Функция find() отыскивает все файлы в каталогах заданного списка, последовательно переходя на поиск в каталогах нижнего уровня. Функция finddepth() также отыскивает файлы в каталогах заданного списка, но начинает поиск с последнего вложенного каталога, последовательно переходя на поиск в каталогах верхнего уровня.
    File::Path

    Содержит две функции mkpath() и rmtree(), которые, соответственно, создают и удаляют каталоги. В отличии от встроенной функции создания каталога mkdir() функция этого модуля создает каталоги верхнего уровня, если они не существуют. Функция удаления каталога, в отличие от встроенной функции rmdir(), удаляет любой, не обязательно пустой каталог, причем возвращает количество удаленных файлов.
    FileCashe

    Предоставляет функцию casheout(), которая открывает файл, не обращая внимания на установленное в соответствующей переменной среды количество одновременно открытых файлов. Ее использование для открытия файлов позволяет открыть произвольное количество файлов.
    FileHandle

    Предоставляет объектный интерфейс для работы с дескрипторами файлов.
    GDBM_File

    Позволяет программе Perl использовать возможности, предоставляемые библиотекой gdbm, распространяемой на условии лицензии GNU. См. описание модуля DB_File.
    Getopt::Long

    Реализует функцию GetOption(), позволяющую получать и обрабатывать опции командной строки, с которыми была запущена программа Perl. Параметры этой функции определяют синтаксис правильных опций: опция с обязательным/необязательным строковым/целым/числовым параметром, опция без параметров.
    Getopt::Std

    Содержит функции getopt() и getopts(), реализующие простой механизм обработки односимвольных опций (например, -v). Опции можно объединять в группы.
    I18N::Collate

    Предоставляет объекты, которым можно присвоить строки данных, и в дальнейшем сравнивать и упорядочивать их в соответствии с таблицей символов национального алфавита. Для правильной работы объектов и методов этого модуля необходимо иметь установленный модуль POSIX языка Perl. Системе также должны быть доступны POSIX-функции setlocale(3) и strxfrm(3).
    integer

    Использование в программе этого модуля предписывает компилятору применять арифметику целых чисел, начиная от строки вызова модуля (use integer;) до конца блока, в котором он вызван.
    IPC::Open2

    Содержит функцию open2(), которая порождает новый процесс и выполняет в нем команду, определяемую значением параметра функции. Ассоциируя со стандартными файлами ввода и вывода два дескриптора, позволяет программе Perl получать и передавать информацию для порожденного процесса.
    IPC::Open3

    Содержит функцию open3(), которая работает аналогично функции open2() модуля IPC::Open2 за исключением того, что открывается еще и третий файл для обмена информацией - стандартный файл вывода ошибок.
    lib

    Упрощает работу со специальной переменной @INC во время компиляции. Позволяет добавлять дополнительные каталоги поиска для операторов use и require.
    Math::BigFloat

    Позволяет создать объекты, представляющие вещественные числа с произвольным количеством цифр в мантиссе, и выполнять над ними арифметические операции.
    Math::BigInt

    Позволяет создавать объекты, представляющие целые числа с произвольным количеством цифр в мантиссе, и выполнять над ними арифметические операции.
    Math::Complex

    Позволяет создавать объекты, представляющие комплексные числа с произвольным количеством цифр в мантиссе, и выполнять над ними арифметические операции.
    NDBM_File

    Позволяет связывать функцией tie() хеши с файлами NDBM. См. описание модуля DB_File.
    Net::Ping

    Содержит функцию pingecho(), которая использует TCP-службу эхо (echo) (не ICMD) для определения, доступен ли удаленный хост.
    ODBM_File

    Позволяет связывать функцией tie() хеши с файлами ODBM. См. описание модуля DB_File.
    overload

    Позволяет осуществлять перегрузку стандартных операций Perl, т.е. при вызове в программе стандартной функции выполнять вместо предусмотренных стандартных операций методы каких-либо классов или собственные программы. Модуль постоянно изменяется, поэтому рекомендуем внимательно ознакомиться с документацией установленного на компьютере интерпретатора perl.
    POSIX

    Обеспечивает доступ ко всем (или почти всем) идентификаторам стандарта POSIX версии 1003.1. Для многих из этих идентификаторов реализованы Perl-подобные интерфейсы.
    Pod::Text

    Содержит функцию pod2text(), которая в программе Perl позволяет преобразовывать файл документации в формате POD в обычный текстовой ASCII файл. (В стандартную постановку Perl входит отдельная программа pod2text, которую можно запустить из командной строки).
    Safe

    Создает специальную область, в которой можно выполнить небезовасный код Perl. Эта область имеет собственное пространство имен и ассоциированную маску операций. Код, выполняемый в ней, не может ссылаться на переменные вне своего пространства имен. Компилируемый вне этой области код может поместить некоторые свои переменные в пространство имен этой области. Тогда они станут доступны коду, компилируемому в ней. Задаваемая маска операций позволяет исключить из выполняемого в безопасной области кода Perl потенциально опасные операции. По умолчанию любые операции доступа к системным ресурсам не выполняются в безопасной области.
    SDBM_File

    Позволяет связывать функцией tie() хеши с файлами SDBM. См. описание модуля DB_File.
    Search::Dict

    Содержит функцию look(), которая устанавливает указатель позиции в файле на строку, содержимое которой больше или равно некоторому строковому значению, переданному в функцию в качестве параметра.
    SelectSaver

    Позволяет создать объект SelectSaver, с помощью которого можно выбрать новый дескривтор файла, при этом старый дескриптор сохраняется и восстанавливается при уничтожении объекта SelectSaver.
    SelfLoader

    Этот модуль предоставляет механизм отсроченной загрузки функций, объявления которых расположены после лексемы _DATA_пакета, определенного в файле программы Perl. Функция будет автоматически загружена при первом к ней обращении. Этот модуль отличается от модуля AutoLoader, который работает с функциями в отдельных самостоятельных файлах.
    Shell

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

    Позволяет инициализировать обработчик сигнала для сигналов, переданных в качестве параметов модулю при его подключении оператором use.
    Socket

    Загружает определение констант и функций заголовочного файла socket.h языка C, а также специальных функций обработки некоторых структур данных, необходимых для работы с сетью.
    strict

    Позволяет ограничить небезопасные конструкции: переменные, ссылки и простые слова, не являющиеся заранее объявленными подпрограммами.
    subs

    Осуществляет объявление подпрограмм, чьи имена передаются в списке при подключении модуля в программу Perl. Это объявление позволяет вызывать в сценарии эти подпрограммы, задавая их параметры без скобок, даже до их определения. Можно перекрыть встроенные функции.
    Symbol

    Предоставляет функцию gensym(), которая создает анонимную глобальную переменную и возвращает ссылку на нее. Такую переменную можно использовать в качестве дескриптора файла или каталога. Функция gualify() уточняет имена переменных, добавляя к ним префикс, состоящий из имени пакета, где они определены, и двойного двоеточия "::".
    Sys::Hostname

    Предоставляет функцию hostname(), которая всеми возможными способами пытается получить имя хоста, последовательно вызывая разные системные программы.

    Специальные переменные

    $_

    Используется по умолчанию во многих функциях и операциях, в том числе :
    $nn

    Переменные $1, $2,... содержат подобразы из соответствующих наборов круглых скобок в последней успешной операции сопоставления с образцом.
    $&

    Часть строки, найденная при последней успешной операции сопоставления с образцом.
    s`

    Часть строки, стоящая перед совпавшей частью при последней успешной операции сопоставления с образцом.
    $'

    Часть строки, стоящая после совпавшей части при последней успешной операции сопоставления с образцом.
    $+

    Содержит подобразец из последнего набора круглых скобок в последней успешной операции сопоставления с образцом. Например, в результате операции
    "1234.5678"=~m/(\d+)\.(\d+)/;
    переменная $+ получит значение 5678.
    $*

    Устанавливает значение 0, чтобы в операциях сопоставления с образцом строка рассматривалась как мультистрока, состоящая из нескольких строк, розделенных символом новой.

    Установить значение 1, чтобы в операциях сопоставления с образцом строка рассматривалась как одна строка. В этом случае метасимволу "." соответствует любой одиночный символ, в том числе и новой строки.

    Устарела, для указанных целей рекомендуется в операциях сопоставления с образцом использовать ключ m и s, соответственно.

    Значение по умолчанию равно 0.
    $.

    Номер последней строки, считанной из того файла, для которого выполнялась последняя операция чтения.
    $/

    Разделитель записей, считываемых из взодного файла. По умолчанию равен символу новой строки. Может состоять из нескольких символов. Если значение установлено неопределенным при помощи функции undef, то при чтении из входного файла границей записи является признак конца файла.
    $|

    Обычно данные, выводимые в файл функциями print или write, предварительно помещаются в буфер. Когда буфер заполняется, его содержимое записывается в файл. Буферизация повышает эффиктивность операций вывода. По умолчанию Perl использует буферизацию для каждого выходного файла, что ссответствует нулевому значению переменной $|. Чтобы ее отменить, следует выбрать файл при помощи функции select и установить значение переменной $| не равным 0.
    $,

    Разделитель полей выходных записей для функции print. Параметры функции print при выводе разделяются символом, который является значением переменной $,. По умолчанию этим значением является нулевой символ, т.е. выводимые элементы печатаются друг за другом. Если переменной $, присвоить, например, значение символа новой строки, то каждый параметр функции print будет напечатан в отдельной строке.
    $\

    Разделитель выходных записей для функции print. Добавляется в конец списка параметров функции print. По умолчанию равен нулевому символу. Если установить его значение равным символу новой строки, каждый вызов функции print будет завершаться переводом на новую строку.
    $"

    Когда переменная-массив, заключенная в двойные кавычки, передается в качестве параметра функции print, ее элементы при выводе разделяются последовательностью символов, содержащейся в переменной $". По умолчанию ее значением является символ пробела.
    $;

    Символ, используемый в качестве разделителя индексов при эмуляции многомерных массивов. Значение по умолчанию \034. Интерпретатор, встретив запись $array{"bim","bom"}, преобразует ее к виду $array{"bim" . $; . "bom"}.
    $#

    Формат, используемый по умолчанию для вывода чисел. Значение по умолчанию %20g, что означает представление выводимых чисел в формате с 20 знаками после десятичной точки. Не рекомендуется использовать в версиях Perl 5 и старше.
    $%

    Каждый файл, открываемый программой Perl для ввода, имеет свою копию переменной $%, в которой храниться номер текущей страницы. В каждый момент значение переменной $% равно номеру текущей страницы текущего файла вывода.
    $=

    Длина текущей страницы текущего файла вывода. По умолчанию значение равно 60.
    $-

    Число строк, оставшихся на текущей странице текущего файла вывода.
    $~

    Имя текущего формата для текущего файла вывода. Значением по умолчанию является имя дескриптора этого файла.
    $^

    Имя текущего формата заголовка страницы для текущего файла вывода. Значением по умолчанию является имя дескриптора файла, к которому добавлен суффикс _TOP.
    $:

    Текущее множество символов переноса слова.
    Если поле вывода в формате начинается с символа ^, то интерпретатор помещает в это поле вводимое слово только тогда, когда в нем достаточно места для этого слова. Чтобы определить, может ли слово поместится в поле формата, интерпретатор подсчитывает число символов между следующими выводимым символом и следующим символом переноса слова. Символ переноса слова обозначает или конец слова, или место, где слово может быть разбито на две части. По умолчанию значением переменно $: является строка, состоящая из символов пробела, новой строки и дефиса:" \n-".
    $^L

    Признак перехода на новую страницу, используемый в шаблонах формата. Значение по умолчанию \f.
    $^A

    Аккумулятор, используется функцией write() для временного хранения выводимых отформатированных строк.
    $?

    Информация, возвращаемая последней операцией ``, операцией закрытия програмного канала или вызовом функции system. Представляет 16-битное целое число, состоящее из двух частей по 8 бит. Старшие 8 разрядов содержат код завершения процесса, младшие - дополнительную системную информацию о завершении процесса.
    $!

    Некоторые функции Perl обращаются к функциям операционной системы. Если системная функция генерирует ошибку, код ошибки сохраняется в переменной $!. В числовом контексте переменная $! дает код системной ошибки, в строковом контексте - соответствующее текстовое сообщение.
    $^E

    Информация о системной ошибке, специфическая для текущей операционной системы. Отличается от переменной $! для платформ Win32, OS/2 и VMS, для остальных платформ эти переменные совпадают.
    $@

    Сообщение об ошибке, сгенерированное интерпретатором в результате последнего вызова функции eval(). Нулевое значение означает, что функция eval() завершилась успешно.
    $$

    Идентификатор процесса выполняющегося интерпретатора perl.
    $<

    Действительный идентификатор пользователя данного процесса.
    $>

    Эффективный идентификатор пользователя данного процесса.
    $(

    Действительный идентификатор группы данного процесса.
    $)

    Эффективный идентификатор группы данного процесса.
    $0

    Имя файла, содержащего выполняющуюся Perl-программу.
    $[

    Индекс первого элемента массива и первого символа в подстроке. Значение по умолчанию 0. Не рекомендуется изменять.
    $]

    Номер версии интерпретатора perl.
    $^D

    Текущее значение флагов отладки, которые передаются при вызове интерпретатора с ключом -D.
    $^F

    Максимальный номер дескриптора системного файла. Обычно системными файлами считаются стандартные файлы SYDIN, STDOUT, STDERR, которые в OC UNIX имеют дескрипторы 0, 1, 2 соответственно. Поэтому значением по умолчанию является 2.
    $^H

    Значение, содержащее информацию о том, какие проверки синтаксиса заданы дерективой use strict.
    $^I

    При вызове интерпретатора Perl с флагом -iextension входные файлы, полученные при помощи операции <>, можно редактировать непосредственно на месте. При этом для резервной копии файла используется имя с расширением extension. Это расширение и сохраняется в переменной $^I. Если ее значение сделать неопределенным при помощи функции undef, редактирование на месте будет запрещено.
    $^M

    Эта переменная используется только в специально скомпилированной версии интерпретатора Perl для создания резервного буфера памяти.
    $^O

    Имя операционной системы, в которой была осуществлена компиляция данного интерпретатора Perl.
    $^P

    Содержит внутренние флаги отладчика Perl. Если значение равно 0, режим отладки отключен.
    $^R

    Результат последнего удачного выполнения конструкции (?{code}), представляющий расширенный синтаксис регулярного выражения.
    $^T

    Время, когда была запущенна программа. Измеряется в секундах относительно 1970 года.
    $^W

    Значение ключа командной строки -w. Значение 0 подавляет вывод предупреждающих сообщений о возможных синтаксических и других ошибках, значение 1 - разрешает.
    $^X

    Имя, по которому была вызвана выполняющаяся программа.
    $ARGV

    Имя текущего файла при чтении из <>.
    @ARGV

    Содержит аргументы командной строки выполняющейся программы.
    @INC

    Содержит имена каталогов, в которых следует искать сценарии Perl, подлежащие выполнению в конструкциях do filename, require или use. Первоначально содержит: имена каталогов, переданные при запуске интерпретатору perl в качестве ключа -I; имена библиотечных каталогов по умолчанию (зависят от операционной системы); символическое обозначение текущего каталога ".".
    @_

    Внутри подпрограммы содержится список переданных ей параметров.
    %INC

    Содержит по одному элементу для каждого файла, подключенного при помощи функции do или require. Ключем является имя файла в том виде, как оно указано в качестве аргумента функции do или require, а значением - его полное маршрутное имя.
    %ENV

    Содержит текущие значения переменных среды.
    %SIG

    Служит для настройки обработки сигналов. Ключем является мнемоническое имя сигнала, значением - либо строка "IGNORE" (игнорировать сигнал), либо строка "DEFAULT" (восстановить реакцию на сигнал по умолчанию), либо строка, задающая квалифицированное имя подпрограммы-обработчика сигнала.
    @EXPORT

    Содержит имена, которые пакет экспортирует по умолчанию.
    @EXPORT_OK

    Содержит имена, которые пакет экспортирует по запросу вызывающей программы.
    ARGV

    Дескриптор, ассоциированный с текущим файлом ввода, из которого осуществляется считывание при помощи операции <>. Последовательно ассоциируется с файлами, переданными в программу в качестве аргументов командной строки, имена которых сохраняются в массиве @ARGV.
    DATA

    Специальный дескриптор файла, ассоциированный с частью файла, которая расположена после лексемы _END_. Чтение из дескриптора DATA означает считывание строки, расположенной в файле сразу за лексемой _END_, что позволяет поместить программу и данные в один файл.:
    #!/usr/local/bin/perl
    $line = <DATA>;
    print ("$line");
    _END_
    Эта строка расположена в одном файле с Perl-программой.
    STDERR

    Дескриптор стандартного файла диагностики, который обычно связан с экраном.
    STDIN

    Дескриптор стандартного файла ввода, обычно ассоциированный с клавиатурой.
    STDOUT

    Дескриптор стандартного файла вывода, обычно ассоциированный с экраном.

    Материалы сайта - www.spravkaweb.ru



    HIVE: All information for read only. Please respect copyright!
    Hosted by hive йца: йХЕБЯЙЮЪ ЦНПНДЯЙЮЪ АХАКХНРЕЙЮ