Filehandles

Orice program scris în orice limbaj de programare, de obicei, primește din mediu și trimite informații. Toate limbajele de programare oferă mijloacele pentru introducerea datelor în program și datele de ieșire de la ea. În Perl definește mai multe modalități de a obține date din afara programului, precum și a informațiilor de ieșire dintr-un script care rulează. Din moment ce limba Perl - un limbaj de control al procesului, este firesc ca acesta a facilitat comunicarea cu sistemul de operare - suficient pentru a semna scenariul de comanda ei în backquotes (sau a efectua QX operațiune echivalentă<>), Iar rezultatele comenzilor sistemului de operare sunt disponibile în programul Perl. Cel mai adesea, interacțiunea cu mediul utilizat fișiere. Citiți datele dintr-un fișier extern sau un grup de fișiere, pentru a înregistra rezultatele calculelor la un fișier extern, sau a le afișa pe ecran - toate aceste acțiuni sunt puse în aplicare o varietate de operațiuni și funcții ale limbajului Perl. Pentru a citi dintr-un fișier sau dispozitivul standard de intrare (de obicei, o tastatură) este utilizată funcționarea „diamant“ (<>), Care este transmis ca un fișier descriptor operand, iar în caz de intrare de la tastatură - fie nici un operand sau predeterminat descriptor de fișier STDIN asociat cu dispozitivul standard de intrare. Pentru a scrie informații într-un fișier sau trimite-le la ieșirea standard (de obicei, ecranul), puteți utiliza funcția de imprimare sau funcții speciale pentru a lucra cu fișiere în biblioteca standard de Perl, care se va conecta automat atunci când interpretul script-ul. Înainte de a începe lucrul cu fișierul în program ar trebui să fie deschis, iar după terminarea lucrărilor cu ea închise funcțiile speciale ale bibliotecii standard de. Când deschideți un fișier asociat cu un mâner special care, în viitor, și este utilizat pentru a lucra cu funcții de fișiere pentru a se referi la acest fișier. Din moment ce aproape toate de comunicare cu mediul extern al script Perl se produce prin fișiere (chiar de intrare și de ieșire la standard, dispozitivele de intrare-ieșire reprezentate ca manipularea de fișiere deschise predeterminate având respectiv Stdin descriptori, stdout și stderr), apoi familiarizăm cu sistemul de intrare în Perl deduce, vom începe cu conceptul important al unui descriptor de fișier care poate fi privit ca un tip special de variabilă. Un mâner la un moment dat poate fi asociat cu unul și numai un singur fișier, dar pe parcursul întregului program același descriptor poate fi asociat in mod constant cu diferite fișiere. Mai mult decât atât, mânerul poate fi asociat nu numai cu un fișier, dar cu canalul de software care asigură comunicarea între procese. În acest capitol, nu ne vom ocupa de problemele legate de programe de cooperare cu alte procese, și ia în considerare funcționează numai cu fișiere și conținutul acestora. Prin urmare, vom apela uneori, descriptori de fișiere descriptori, sau descriptori de fișiere.













Filehandles

Descriptor - un nume simbolic, care este folosit în Perl pentru a reprezenta fișierul program, dispozitiv, priza sau o țeavă. Atunci când un mâner este creat este „aderat“ la obiectul de date corespunzătoare și îl prezintă operațiunile de intrare-ieșire. Am dat definiția cea mai completă a Descriptorul pentru cititorul să înțeleagă că mânerul vă permite să lucrați nu numai cu fișiere de date, ci și cu cele ale altor obiecte software specializat folosite pentru a implementa sarcini specifice și de a obține date. Când mânerul este atașat la dosar, îl vom numi descriptor de fișier sau descriptor de fișier.

AVERTISMENT La deschiderea unui fișier sistemul de operare (Windows sau UNIX) și o atribuie descriptorul de sistem, care nu are nimic de-a face cu descriptorul Perl. Descriptorul de fișiere de sistem este un număr întreg, în timp ce Perl este un nume simbolic prin care ne putem referi la un fișier. Pentru a obține numărul de fișiere descriptor de sistem în programul Perl, puteți utiliza fileno ().

Programul include un descriptor de fișier este creat atunci când deschideți un oren fișier) funcție (, primul parametru al cărui este numele descriptor, în timp ce restul parametrilor definesc modul de acces la dosar și numele său: Această afirmație creează un fișier mâner numit și atașează-l într-un fișier cu numele specificat, care se deschide în modul de înregistrare,) funcția deschisă (determină al doilea parametru. În această secțiune, nu vom atinge pe probleme legate de modul deschis al fișierului și se va concentra asupra descriptorii. În următoarele secțiuni pentru a deschide fișierul va fi considerat de către noi în detaliu. descriptor de fișier în program, așa cum sa menționat, este numele simbolic al fișierului și este un identificator obișnuit, care poate fi diferit de cuvintele rezervate Perl. Mai mult decât atât, putem să-l întreb, nu este indicat în ghilimele, ca și în acest caz, interpretul perl le va trata ca simple cuvinte, și interpretate în mod automat ca șir de date.

NOTĂ programe Perl făcute în numele descriptorilor de a utiliza cu majuscule. Această practică face ușor pentru a le detecta în program și nu conduce la conflicte cu nume rezervate de funcții care sunt de obicei definite în litere mici.
Doar o singură dată poate produce NOTĂ: Realocarea standardul în programul de IO. Acesta funcționează din reordonarea timp de dispozitive de intrare și de ieșire standard și înainte de finalizarea programului, Oren function () nu poate reveni la setările originale descriptorilor STDIN, STDOUT și STDERR.