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


Файловый ввод и вывод - Программирование от RIN.RU
Файловый ввод и вывод

Perl специально разрабатывался для того, чтобы служить адекватным средством для чтения и записи в текстовые файлы. Тем не менее, как вы узнаете далее, Perl выполняет функции по произвольному доступу и вводу-выводу бинарных файлов. Операции по работе с файлами требуют указатель файла (file handle), который является переменной, соответствующей конкретному файлу. По умолчанию каждый скрипт на языке Perl имеет три стандартных указателя, которые Perl автоматически открывает при запуске скрипта: STDIN, STDOUT, STDERR. Эти три стандартных указателя отвечают стандартным потокам STDIN, STDOUT, STDERR языка программирования С. Кроме того, скрипт языка Perl может открыть дополнительные указатели для других специфических файлов.


Открытие файлов и других потоков


Для того чтобы скрипт использовал файл, он должен вызвать функцию open. Она имеет следующий вид:


open(FileHandle[, FileName])


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

Имя файла Операция
<FILE> Открыть файл только для чтения (аналогично функции fopen)
<<FILE> Открыть файл для чтения (то же самое, что )
<>FILE> Создать файл для записи (как функции fopen)
<>>FILE> Открыть файл для добавления в его конец (как <г+> функции fopen)
<+>FILE> Создать файл для чтения/записи (как функции fopen)
<+<FILE> Открыть файл для чтения/записи (как функции fopen)
<| CMD> Открыть канал из процесса, исполняющего команду
<CMD |> Открыть канал процессу, исполняющему команду



Примечание: Режим канального (pipe) потока может существовать не на всех системах.


Если в вызове функции open опущено имя файла, то Perl подразумевает, что имя файла содержится в строковой переменной $FileHandle. Когда скрипт завершил использование файла, он закрывает его, используя функцию close, как показано ниже:


close(FileHandle);


фрагмент программы иллюстрирует использование функций open иclose:


open(InFile, "test.dat") || die; # открываем для чтения
# test.dat
open(OutFile, ">test.dat") || die; # создаём test.dat
$AuxFile = ">>test.dat";
open(Aux, $AuxFile) || die; # открывает для дополнения
# test.dat
close(InFile);
close(OutFile);
close(Aux);


Обратите внимание, что указатели файлов не имеют обычных односимвольных префиксов. Как вы узнаете далее, скрипты языка Perl могут хранить имена указателей в виде строк скалярных переменныхи передавать указатель любой функции, которая может их обрабатывать. При необходимости Perl выполняет конвертацию значений. В операционной системе MS-DOS Perl поддерживает дополнительную функцию, которая называется hinmode и позволяет файловому вводу/выводу переключаться между текстовым и бинарным режимами. В большинстве же систем различие между текстовым и бинарным режимами не имеет значения. Однако для операционной системы MS-DOS символ новой строки представляет собой последовательность из двух символов (CR+LF). Поскольку большинство программ не ожидают встретить два символа в конце строки, то система ввода/вывода должна выполнить преобразование. Для того чтобы можно было использовать функцию binmode, соответствующий указатель может быть открыт. Функция binmode имеет следующий формат:


binmode(FileHandle);


Вперед  >>>
 1  2 


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

8  В тему

Руководство Маслов

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

Переменные

Операторы PERL

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

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

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

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

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

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

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

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

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

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

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