Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Топ:
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Дисциплины:
2022-12-30 | 19 |
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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!