Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Топ:
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Интересное:
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Дисциплины:
2022-12-30 | 20 |
5.00
из
|
Заказать работу |
|
|
Простейшим способом для чтения скриптом строки из файла служит использование оператора <FILEHANDLE'>. В языке Perl указатель файла, окруженный треугольными скобками, становится символом ввода (input-symbol). Например, следующий фрагмент программыиллюстрирует использование символа ввода для чтения и вывода наэкран содержимого файла Test.dat.
open(InFile, "Test.dat") || die; while ($line = <InFile>) { print $line; # Выведет строку из файла } close(InFile);Когда символ ввода достигает конца файла, он возвращает значение false, которое в данном случае заканчивает выполнение цикла while. Существует специальный (пустой) символ ввода, обозначаемый <>, который имеет весьма специальное, но полезное применение. В первый раз, когда скрипт использует пустой символ ввода<>, он анализирует аргументы командной строки. Если строка @ARGVявляется пустой, то входной символ <> читает из STDIN. Если вместо того @ARGV не пуста, то Perl открывает первый из файлов, указанных в переменной @ARGV, и читает содержимое файла. Когда Perlзаканчивает обработку одного файла, он приступает к следующему.После того как скрипт прочитал все файлы, символ <> возвращаетзначение false. Скрипты языка Perl также могут использовать символ ввода длячтения всего содержимого файла в массив так, что каждая строкафайла становится элементом массива. Например, следующая инструкция читает из файла STDIN в массив @lines:
@lines = <STDIN>;Запись данных в файл также достаточно проста. Фактически выэто делали всякий раз, когда использовали функцию print. Полныйформат функции print имеет следующий вид:
print [FileHandle] List;Если функция print не получает в качестве аргумента указателя файла, то она посылает вывод в STDOUT. Следующий фрагментпрограммы иллюстрирует использование функции print для добавления данных в выходной файл:
|
Примечание: Указатель файла и выходной список не разделяются запятой.
ЧТЕНИЕ И ЗАПИСЬ БЛОКОВ ДАННЫХ
Программисты часто рассматривают текстовые файлы как текстовые потоки просто потому, что один символ следует за другим домаркера конца файла. Если скрипт должен работать с файлом, который ориентирован на работу с блоками, а не потоками, то скриптможет использовать функции sysread и syswrite для обработки фиксированных блоков данных. Функции sysread и syswrite имеют следующие форматы:
$result = sysread(FileHandle, $Var, Length[, Offset]); $result = syswrite(FileHandle, $Var, Length[, Offset]);Если в вызове функций указывается сдвиг от начала файла(Offset), то функции выполнят поиск места, с которого они начнутоперации ввода/вывода. Функции sysread и syswrite обе передаютданные, используя скалярную переменную строкового типа. Поскольку функции обрабатывают фиксированные блоки памяти, то данные могут содержать бинарные значения, включая нули и маркерыконца файла. Если в вызове функции указывается сдвиг от началафайла (Offset), то функция выполняет поиск места в файле, с которого начинает выполнять операции ввода/вывода. Если вы работаете с блоками данных, то скрипты могут такжеиспользовать следующие функции ввода/вывода:
$result = seek(FileHandle, Position, Base); $result = tell(FileHandle); $result = eof(FileHandle);Функция seek работает в точности так же, как fseek - функция библиотеки времени выполнения языка С. Параметр Position задает позицию относительно начала отсчета, которая в свою очередьзадается параметром Base следующим образом:
? 0 Поиск от начала файлов? 1 Поиск от текущей позиции? 2 Поиск от конца файлаФункция tell языка Perl работает в точности так же, как фикция ftell библиотеки времени выполнения языка С. Эта функция возвращает текущую позицию в файле, с которой выполняются операциичтения или записи. Наконец, функция eof, так же как и функцияfeof языка С, возвращает значение <истинно> или <ложино>, которое скрипт может использовать для определения достижения концафайла.
|
ОБРАБОТКА БИНАРНЫХ ДАННЫХ
Хотя Perl ориентирован в первую очередь на обработку текста,он также может обрабатывать бинарные данные. Скрипты могут перемещать бинарные данные частями, используя строковые переменные, ивыполнять байтовые операции ввода/вывода, используя функцииsysread и syswrite. Однако для того, чтобы выполнить что-нибудь<полезное> с данными, скрипт вынужден конвертировать данные всвои <родные> скалярные форматы.
ХРАНЕНИЕ БИНАРНЫХ ДАННЫХ
Когда скрипт на языке Perl читает блок бинарных данных, используя функцию sysread, он помещает эти бинарные данные в скалярную строковую переменную. Perl не заботится о том, что это заданные, содержат ли они нули или значения, не являющиесяASCII-символами. В пределах символьной строки Perl принимает байты как байты. В отличие от языка С, Perl не использует строк,оканчивающихся нуль-символом. Если данные соответствуют кодовойтаблице ASCII, то скрипт может их обрабатывать, как любой текст.Но если данные представляют собой бинарные величины, то скриптобязан распаковать их перед тем, как Perl сможет обработать этиданные.
|
|
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!