Ние работим с файлове в Perl

Фактът, че даден файл пиши го Надявам се не е необходимо, но аз мисля, че трябва да се мисли за това, което можете да правите с тях, както се вижда от заглавието на статията, в Perl. Е, нека да започнем.

В тази статия ще обсъдим:

  • Какво е дръжките на файлове, както и това, което ядем
  • Файл манипулация
  • Работа с низове във файла

    Какво е дръжките на файлове, както и това, което ядем

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

    Има стандартни файлови Perlovskiy дръжки. Те се наричат ​​STDIN (стандартния), STDOUT (стандартния изход) и STDERR (стандартна грешка). Например параметри скрипт, предавани от матрицата е чрез STDIN (при условие, като се използва метод POST).

    Ако е необходимо да се създаде копие на файл манипулатор (не файл, но само от страна на манипулатора в който е достъпен на файл), а след това можете да използвате на открито (повече за това по-късно).

    За задаване на променливи дръжки файлове:

    И в крайна сметка аз бих казал, че filehandle в Perl се използват не само за комуникация с действително файл. Те могат да бъдат свързани с всеки процес, гнездо, и т.н. Но това е извън обхвата на статията.

    Файл манипулация

    Отваряне на файл се извършва от отворен.

    Ние ще се разбере. Ние функция три параметъра: FFF - името на манипулатора на файла (това ви питам) ">" Режим на достъп и "file.txt" - името на файла, който искате. Има три основни режима: ">" - запис "<"- чтение, ">> "- добавяне към файла.

    Има и функция sysopen. Работата с нея не е много по-трудно, отколкото с открито, но с него ще можете по-подробно "разказват" за вашите намерения в системата (т.е. това, което искате да правите с файла).

    В sysopen три задължителни параметри и един по избор.

    FH - в действителност, filehandle, $ име - името на файла, в чист вид (без ">" и т.н.). Обозначенията за $ поставени броя, получен чрез комбиниране на описаните по-долу константи или (|):

    само за четене

    Изчистване на съдържанието, когато отваряте

    Това в никакъв случай не е изчерпателен списък, но тук са най-важни и често използвани константи.

    И накрая, $ Парам. Този параметър определя маска за достъп до файлове и написано в осмична. Обикновено стойност 0666 (стойността по подразбиране, тоест, ако параметър $ пропуснато) на или 0777. Първата стойност се използва за обикновени файлове, втората е за директории и изпълними файлове.

    Пример за отваряне на файла за писане (ако не е намерен - създаден):

    Писане на файл направи функция за печат.

    Тук, FFF - на името на файла, манипулатор и цитиран низ - текст, който ние искаме да пиша във файл, свързан с FFF.

    Ако не съществуваше преди да се опитате да отворите файла, функцията е отворен го няма, както и ако файлът е бил, и това не е празен, след като по-горе функция за печат, не е останало нищо от предишната информация, и се записва, ще се окаже, че глупости, че съм там пише ,

    Както вече споменахме, има три стандартни файл манипулатор, а от страна на манипулатора се понижава файл функция за печат ще носи изход към STDOUT (същото важи и за ФОРМАТ на функции и запис). За да промените посоката на изхода в Perl осигурява функцията изберете (макар и не само за тази цел). например:

    Затворете файл функция затваря.

    Принципът на чисти след себе си присаден на всички от детството. Нека не забравяме, че в програмирането, въпреки че в края на този процес, в който се отвори файла, файлът се затваря автоматично.

    Първо за какво? И за да се гарантира, че ако няколко процеса в същото време искат да получат достъп до даден файл, и пиша, и все още искам да напиша нещо (кошмар), а след това да си представя какво би било, ако не и този прекрасен механизъм за заключване. Тя позволява, грубо, да се сложи процеси на място. Направете това:

  • 1 споделена заключване (четене)
  • 2 изключително заключване (запис)
  • 4 искане асинхронен заключване
  • 8 отблокиране

    За отключване: брави се освобождават автоматично в края на процеса, причинени от текущия скрипт, или когато затворите манипулатора на файла, който "вързани" към заключен файл. Ако снимате ключалката ръчно, бъдете внимателни - трябва да позволи на друг процес, за да се направи, е, не е затворена файла си каквото си иска (ЗАБЕЛЕЖКА!)! Последиците могат да бъдат, меко казано, неприятно, и грубо казано - непредсказуем (неочакван за вас).

    Работа с низове във файла

    И така, как точно тези файлове, които съдържат информацията, низ от най-голям интерес да се направи, в действителност, човек, и сега върви, че е за тях.

    За да прочетете линии от файл с помощта на файл манипулатор "доставя" в <>.

    Освен ако не е посочено друго в този цикъл, стандартната променливата "$ _", а номера на реда се записва в "$".. От края на линията е показана чрез специални символи като "\ N", за да се получи се низ (без такива "опашка"), е необходимо да се съкрати функцията Chomp.

    Можете да прочетете конците в масива:

    За да преместите файла използва функции, казват и се стремят.

    кажете функция приема като параметър на filehandle, и да се потърси отнема три параметъра. Произход - filehandle, а вторият - на Отместване в байтове, третият - посоката на преместване. Има три посоки на изместване: 0 - от началото на файла, един - от текущата позиция, 2 - от края на файла.

    Не можем да кажем, че това е всичко, което ние предлагаме Perl за работа с файлове. Надяваме се, че ще имам време за нещо да пиша за това, как да работят с каталози, финес, когато се занимават с бинарни файлове, обектно-ориентиран подход към файловете и управление на съдържанието.

    Ще бъда много благодарен за възможните грешки и неточност в тази статия.