- Marca temporala a unui fisier
- Proprietatile fisierelor
- Globing
- Directoare
- Functii de fisiere
Marca temporala a unui fisier
Un fisier este de obicei legat de o ora sau o data care poate fi folosita pentru a afla, de exemplu, cand a fost modificat ultima data continutul unui fisier. Totusi, depinde foarte mult de sistemul de fisiere (si, prin urmare, de sistemul de operare) care sunt informatiile de timp salvate cu un fisier si care nu. www.dryforkcoal.com
Perl, dezvoltat initial sub UNIX, permite accesul la cele trei marcaje de timp cunoscute acolo:
- Timp de acces ( atime ): Aceasta inregistreaza ultima data cand a fost accesat continutul unui fisier.
- Timp de modificare ( mtime ): Acest marcaj de timp este actualizat de fiecare data cand se modifica continutul unui fisier. interfacetraining.info
- Timp de schimbare ( ctime ): Aceasta marcheaza modificarile aduse proprietatilor fisierului (dimensiune, drepturi de acces, .. stopcomputerizedvoting.com .). www.lagunafenceproducts.com
Functia atributului fisierului de
marcaj temporal poate fi schimbata de utime ()? atime -A stat [8] da mtime -M stat [9] da ctime -C stat [10] nu
Atat operatorii de atribut al fisierului „-A”, „-M” si „-C”, precum si functia stat () se asteapta ca argument fie un handler de fisier, fie un nume de fisier. Cu toate acestea, valorile de returnare difera prin faptul ca primul scoate timpii in unitati de zile in raport cu inceperea programului apelant (mai precis: continutul variabilei speciale $ ^ T sau $ BASETIME), in timp ce stat () in contextul listei in Elementele de la 8 la 10 fiecare contine timpul corespunzator in secunde de la „epoca” (01/01/1970, 00:00 GMT). beyondtomorrowcomics.com
Exemplu de aplicare:
#! / usr / local / bin / perl -w
folositi strict;
varsta mea de $ = (
-M “test.pl”); # Numar in virgula mobila!
print “Ultima modificare $ vechi \ n”;
Trebuie subliniat inca o data ca cele de mai sus se aplica sistemelor de tip UNIX – cu alte sisteme de operare ar trebui sa verificati documentatia respectiva pentru a vedea care este semnificatia valorilor returnate ale operatorilor sau stat () declarati acolo. nr1.psi-ar.com
[Inceputul paginii]
Proprietatile fisierelor
Pe langa orele deja explicate, exista o serie de alte proprietati ale fisierului care pot fi interogate cu ajutorul operatorilor de atribute ale fisierului. Urmatoarea lista contine doar cele mai importante dintre ele:
- -r poate fi citit (in cazul unui fisier, continutul; in cazul unui director, lista de fisiere si subdirectoare)
- -w fisierul poate fi scris/modificat (continutul unui fisier; lista fisierelor si subdirectoarelor din directoare)
- -x Fisierul poate fi executat (fisierele ca programe executabile; directoarele pot fi modificate, de exemplu, cu comanda chdir)
- -e fisierul exista
- -z fisierul are lungime zero
- -s Returneaza lungimea fisierului
- -f fisierul este un fisier simplu
- -d fisierul este un director
- -l fisierul este o legatura simbolica
Exemplu de aplicare:
#! / usr / local / bin / perl -w
folositi strict;
daca (
-r “test. www.laboratoires-des-produits-pharmaceutiques-dafrique-du-nord.com pl”) {printeaza “lizibil \ n”}
altfel {printeaza “nu se poate citi \ n”}
tipariti „lungimea este:”. (
-s „test. uspour.com pl”). „\ n”;
Functia stat (), de asemenea, deja mentionata, returneaza un numar de proprietati ale fisierului simultan in contextul listei:
Proprietatea indexului 0 Numarul dispozitivului al sistemului de fisiere 1 Numarul inodului 2 Drepturile de acces 3 Numarul de legaturi hard 4 ID utilizator al proprietarului fisierului 5 ID grup al fisierului 6 Identificarea dispozitivului 7 Marimea fisierului (in octeti) 8 la timp 9 mtime 10 ctime 11 Dimensiunea de bloc preferata pentru transferul de date 12 Numarul de blocuri alocate
Deoarece functia stat () mapeaza direct functia sistemului UNIX stat (), tabelul de mai sus se poate aplica numai cu restrictii din alte sisteme de operare. mcf.iexit.com
Exemplu:
#! / usr / local / bin / perl -w
folositi strict;
fisierul meu $ = “test.pl”;
@a mea =
stat (fisier $);
print „Fisierul „$ fisier” este
$ a [7] octeti mari. optionsabc.net \ n “;
[Inceputul paginii]
Globing
Intr-un shell UNIX este posibil sa obtineti o lista de fisiere prin specificarea unui model care contine substituenti precum * sau? contine. Deci livreaza
ls -1 * . promoscape.com html
o singura coloana (optiunea de dupa „ls” este numarul „1”) lista cu toate fisierele care se termina in .html. www.bondstreetcap.com
Exista un mecanism analog in Perl cu functia glob () si asa-numitul operator romb „<>”. Exemplul de shell de mai sus poate fi apoi implementat dupa cum urmeaza:
#! / usr / local / bin / perl -w
folositi strict;
foreach numele meu de fisier $ (
glob (“*. www.emigrantrealtyfinance.net html”)) {
print $ nume de fisier. “\ n”
}
Sau:
#! / usr / local / bin / perl -w
folositi strict;
foreach numele meu de fisier $ (
<*. catchhim.com html>) {
print $ nume de fisier.
- vremea tecuci
- shutterstock
- zodiac
- angol magyar szótár
- ministerul afacerilor interne
- it
- alina eremia
- vlad cazino
- tube8
- medlife
- mydocalm
- judecatoria constanta
- ase online
- ion tiriac
- porno cu mature
- snaptube
- radio manele
- istoric
- farmacie veterinara
- win for life
“\ n”
}
De asemenea, puteti trece lista de fisiere direct intr-o matrice:
#! / usr / local / bin / perl -w
folositi strict;
@fileliste al meu =
glob (“*. co2alternative.org html”);
foreach my $ filename (@fileliste) {
print $ filename. “\ n”
}
Chiar si variabilele pot fi utilizate in modelul de fisier:
#! / usr / local / bin / perl -w
folositi strict;
calea mea $ = ‘perla’;
@fileliste al meu =
<$ cale / *. www.musicsurround.com html>;
foreach my $ filename (@fileliste) {printeaza $ filename. “\ n”}
modelul meu $ = ‘* . www.komainc.net html’;
@fileliste =
<$ {model}>; # Caz special pentru
numele meu de fisier $ (@fileliste) {printati numele fisierului $. „\ N”}
In exemplul de mai sus, <$ {pattern}> trebuie folosit in locul <$ model> in a doua parte, deoarece exista o singura variabila in operatorul romb. qel.texasgoose.com
Daca doriti sa aflati mai multe: intr-o expresie precum <$ muster>, $ muster este considerat un „manager de fisier indirect”. Cu aceasta puteti, de exemplu, sa treceti manerele fisierelor ca parametri la subrutine. www.extremeclay.net
Exemplu:
#! / usr / local / bin / perl -w
folositi strict;
deschideti (FILE, ‘test.dat’)
sau muriti „Nu se poate citi fisierul: $! \ n”;
print_file (\ * FILE);
inchidere (DOSAR);
sub print_file {
manerul meu $ = $ _ [0];
in timp ce (
<$ maner>) {printare}
}
[Inceputul paginii]
Directoare
Similar cu modul in care fisierele pot fi deschise pentru citire, directoarele pot fi, de asemenea, gestionate pentru a putea accesa numele fisierelor din continutul folderului. www.goldoutlet.biz
Exemplu:
#! / usr / local / bin / perl -w
folositi strict;
opendir (DIR, “perl”);
while (fisierul meu $ = readdir (DIR)) {printeaza fisierul $. “\ n”}
closedir (DIR);
Directorul este deschis cu opendir (). Primul argument aici este asa-numitul „maner de director”, al carui nume ar trebui sa fie format din majuscule, similare cu manerele de fisier. Functia readdir () returneaza apoi intrarile individuale din folder. in cele din urma closedir () incheie accesul la director.
Directorul curent poate fi determinat independent de platforma cu ajutorul functiei cwd () a modulului standard Cwd.
Exemplu:
#! / usr / local / bin / perl -w
folositi strict;
utilizati Cwd;
my $ akt_verz =
cwd ();
printeaza „directorul curent: $ akt_dir \ n”;
O schimbare de director este posibila folosind functia chdir (). Totusi, aceasta depinde de sistemul de operare sub care ruleaza Perl in prezent, acordand o atentie deosebita caracterului care separa numele fisierelor/directoarelor din cale.
Ca exemplu, UNIX si MacOS „clasic” sunt comparate aici:
UNIX MacOS Classic Path separator /: Schimbati intr-un director superior chdir (‘.. ‘); chdir (‘::’); Deschideti directorul curent opendir (ABC, ‘.’); opendir (ABC, ‘:’);
[Inceputul paginii]
Functii de fisiere
Urmatoarele functii sunt disponibile pentru lucrul cu fisiere; In functie de sistemul de operare, nu toate sunt intotdeauna disponibile (de exemplu, nu exista link-uri hard pe platforma clasica Macintosh):
- Schimbarea numelui: redenumeste ()
#! / usr / local / bin / perl -w
foloseste strict; redenumeste (“nume_vechi”, “nume_nou”); - Stergerea unui fisier: deconectati ()
#! / usr / local / bin / perl -w
use strict; unlink (“nume fisier”); - Creati un director: mkdir ()
#! / usr / local / bin / perl -w
use strict;permisiunile mele $ = 0777;
mkdir (“dirname”, permisiuni $);
- Stergerea unui director (gol): rmdir ()
#! / usr / local / bin / perl -w
foloseste strict; rmdir (“dirname”); - Creati un link dur: link ()
#! / usr / local / bin / perl -w
use strict; link (“nume fisier”, “nume link”); - Creati legatura soft: link simbol ()
#! / usr / local / bin / perl -w
foloseste strict; link simbolic (“nume fisier”, “nume link”); - Modificati drepturile de acces: chmod ()
#! / usr / local / bin / perl -w
use strict;permisiunile mele $ = 0755;
chmod ($ permisiuni, “prog_1”, “prog_2”, “prog_3”);
- Schimbati proprietarul: chown ()
#! / usr / local / bin / perl -w
use strict;my $ uid = 4987;
# ID utilizator
my $ gid = 33; # ID grup
chown ($ uid, $ gid, “fisier”); - Modificarea datelor de timp: utime ()
#! / usr / local / bin / perl -w
use strict;timpul meu $ = 812_000_000;
# ultimul acces
meu $ mtime = 822_000_000; # ultima
modificare de continut utime ($ atime, $ mtime, „fisier”);Timpurile vor fi date in secunde incepand cu 1. 1.1970. Ora curenta a sistemului poate fi interogata folosind operatorul de timp:
#! / usr / local / bin / perl -w
use strict;print “Din 1.1. 1970 sunt”;
imprimaretimp;
print “Secundele trecute. \ n”;
[Inceputul paginii]