Acasă Finanțe personale Tuning în zece programe scurte, utile Perl

Tuning în zece programe scurte, utile Perl

Cuprins:

Video: You Bet Your Life: Secret Word - Floor / Door / Table 2024

Video: You Bet Your Life: Secret Word - Floor / Door / Table 2024
Anonim

Unii cred că programele scurte nu sunt bune pentru foarte mult, dar nu este așa cu Perl. Doar câteva linii de cod Perl pot merge mult. Acest articol afișează câteva programe la îndemână, mici, Perl.

Colectarea liniilor unice

Dacă fișierul dvs. text are mai multe linii care sunt duplicate și doriți doar să vedeți liniile unice, le puteți colecta într-o matrice (în acest caz se numește @Unique) cu următorul program:

deschis (IN, "somefile.txt"); @ Unique = ();

în timp ce () {cu excepția cazului în care ($ i {$ _} ++) {push (@Unique, $ _)}}

creați o pereche cheie-valoare cu tasta $ _ și o valoare nonzero după aceea.

Îndepărtarea mai multor linii goale

Unele fișiere text au mai multe linii goale consecutive, ceea ce le face greu de citit, în special pe ecrane mici. Următorul program imprimă un fișier text, comprimând toate instanțele a două sau mai multe linii goale într-o singură linie necompletată.

Notă: O linie necompletată poate conține caractere de tip spațiu alb, cum ar fi spații și file, dar nu există caractere afișabile.

deschide (IN, "somefile. Txt"); $ PrevBlank = 0;

în timp ce () {

dacă (/ S / sau! $ PrevBlank) {print $ _}

$ PrevBlank = / ^ s * $ /;

}

Instrucțiunea if din exemplul precedent este adevărat dacă există caractere nonblank pe linie sau dacă linia precedentă nu a fost necompletată. Cesiunea $ PrevBlank vă spune dacă linia curentă este necompletată, ceea ce înseamnă că ea are zero sau mai multe caractere din spațiul alb și nimic altceva.

Tipărirea liniilor dintr-un fișier în ordine ordonată

Este ușor să uități cât de utilă este funcția de sortare Perl. Următorul program citește întregul fișier într-o matrice, sortează matricea și imprimă rezultatul. Scurt și dulce și destul de eficient pentru boot:

deschis (IN, "somefile. Txt");

tipul de imprimare ();

Imprimați o serie de linii dintr-un fișier

V-ați dorit vreodată să citiți doar câteva rânduri dintr-un fișier, și nu totul? Următorul program imprimă doar o serie de linii. Porniți programul cu două argumente: intervalul dorit și numele fișierului. De exemplu, dacă vă denumiți programul "showline" și doriți să vedeți linii de la 10 la 20 ale filelor. txt, utilizați această linie de comandă:

showline 10-20 somefile. txt

Următorul program tipărește o serie de linii:

deschideți (IN, $ ARGV [1]) sau mori "Nu am putut citi $ File. n“;

($ Start, $ Stop) = împărțit (/ - /, $ ARGV [0]);

pentru ($ i = 1; $ i; = $ stop; $ i + = 1);

{$ Line =; dacă {$ i> = $ Start) {print $ Line}}

Afișarea doar a fișierelor dintr-un director

Uneori, poate doriți să ignorați subdirectoarele dintr-un director și să vă concentrați doar asupra fișierelor.Puteți folosi următorul test -f pentru a afișa toate fișierele dintr-un director:

foreach $ f () {if (-f $ f) {print "$ fn"}}

Pentru a sorta, o listă de directoare cu orice altceva decât numele de fișiere, programul dvs. trebuie să păstreze o listă de înregistrări constând din numele și alte elemente din listare. Hashes sunt mari de utilizat pentru acest tip de listă care are înregistrări cu o cheie (numele fișierului) și o valoare (celelalte informații din director). Următorul program creează un hash care listează dimensiunea fiecărui fișier din director și apoi sortează elementele pentru ieșire. (Puteți modifica cu ușurință acest program pentru a sorta după dată în loc de dimensiune.)

foreach $ f () {$ i {$ f} = -s $ f};

foreach $ k (sortare {$ i {$ b} <= & $ $ {$ a}} chei% i)

{printf "% 8d% sn", $ i {$ k} }

Sortarea directoarelor prin extensie

Sortarea după o porțiune a unui nume de fișier este un proces ușor mai dificil decât sortarea după dimensiunea fișierului sau până la data la care fișierul a fost modificat. Următorul program rupe numele de fișier în două și sortează partea a doua. Dacă executați Perl pe un sistem UNIX sau Macintosh, acest program funcționează cu previzibilitate numai dacă numele de fișiere nu au o perioadă sau o perioadă:

foreach $ FullName () {

($ Name, $ Ext) = split /. /, $ FullName, 2);

împinge (@Temp, "$ Extt $ FullName");

}

foreach $ Val (sortare (@Temp)) {

($ Ext, $ FullName) = împărțit (/ t /, $ Val);

print "$ FullNamen";

}

Crearea unui calculator simplu

Ai nevoie vreodată de un calculator simplu pentru a elimina matematica rapidă și murdară? Următorul program utilizează funcția eval Perl pentru a imprima răspunsurile la orice ecuație pe care o introduceți. Pentru a termina programul, introduceți o linie necompletată. Iată programul pentru crearea propriului calculator:

în timp ce () {

$ i = $ _; chomp ($ i); cu excepția cazului ($ i) {last}

$ o = eval ($ i); tipăriți "Răspundeți = $ pe";

}

Când rulați programul, puteți introduce ceva asemănător:

((2 ** 8) + (3 ** 8))

> Răspuns = 6817

Randomizarea unei liste

În Perl, generarea de numere aleatoare este ușoară, dar randomizarea ordonării unei matrice nu este la fel de simplă. Cu toate acestea, puteți utiliza funcția de îmbinare pentru a extrage un element aleator dintr-o matrice și apoi a plasa elementul într-o altă matrice. Următorul program aleargă lista @MyList:

meu @TempList = ();

în timp ce (@MyList)

{împinge (@TempList, splice (@MyList, rand (@MyList), 1)}}

@MyList = @TempList;

Trick-ul aici este că rand (@MyList) alege un număr între 0 și numărul de elemente din @MyList, iar îmbinarea schimbă acest număr aleatoriu la un număr întreg.

Generarea de parole mnemonice aleatorii

Încercarea de a convinge utilizatorii de computer să vină cu parole care nu sunt ușor de ghicit este una dintre cele mai dificile locuri de muncă pentru un administrator de sistem. Oamenii întotdeauna par să insiste pe folosirea denumirilor de naștere sau a animalelor pentru parole - încălcarea securității devine apoi jocul copilului.

Următorul program generează parole aleatorii. În loc de o grămadă de scrisori greu de reținut, parolele sunt oarecum mnemonice deoarece apar în perechi de consoane și vocale pronunțabile.Prin armonizarea câtorva silabe goale, puteți genera fraze nonsens ușor de reținut.

Fiecare silabă a parolei poate reprezenta oricare din cele 100 de numere; prin urmare, o singură parolă cu patru silabe, cum ar fi

votahubo, este una dintre cele 100 de milioane de parole posibile pe care programul le generează. Având un administrator de sistem atribuirea acestor parole oferă mai multă securitate decât să permită utilizatorilor să își aleagă propria parolă ghicită ușor: print "Introduceți un număr de semințe:"; = $ S;

srand ($ s ^ timp);

@ c = împărțit (/ * /, "bcdfghjklmnprstvwxyz");

@ v = împărțit (/ * /, "aeiou");

pentru ($ i = 1; $ i <= 4; $ i + = 1)

{print $ c [int (rand (20) }

Primele două rânduri ale acestui program inițializează semințele pentru numerele aleatoare, iar următoarele două linii creează liste care conțin cele 20 de consoane (minus

q ) și 5 vocale ale alfabetului. Ciclul pentru imprimă pur și simplu cele patru silabe.

Tuning în zece programe scurte, utile Perl

Alegerea editorilor

Social Media Design: Twitter Opțiuni imagine - dummy

Social Media Design: Twitter Opțiuni imagine - dummy

Jonglați constrângerile legate de spațiu și modul cel mai bun de a poziționa cele trei imagini separate pe care vi se permite să le utilizați în profilul dvs. Twitter.

Social Media Design: Inspirând exemplele de afaceri pe Facebook - manechine

Social Media Design: Inspirând exemplele de afaceri pe Facebook - manechine

ÎNainte de scufundări în elementele de bază ale proiectării o pagină solidă Facebook, aruncați o privire asupra unor branduri care profită din plin de Facebook cu pagini proprii. Persoanele fizice și organizațiile de la bloggeri la proprietarii de magazine Etsy de la domiciliu la branduri internaționale folosesc Facebook pentru a se conecta cu clienții și fanii existenți, precum și cu potențialul lor ...

Social Media Optimization: Publicarea Tweets automat la profilul dvs. Facebook - dummies

Social Media Optimization: Publicarea Tweets automat la profilul dvs. Facebook - dummies

Lucrurile noi pe care să le postați pe Facebook pot fi o adevărată corvoadă. Din fericire, există un truc pe care îl puteți optimiza pe acest site media social. Dacă puteți atinge postarea încrucișată a conținutului între servicii, vă puteți salva ceva timp. Twitter vă oferă posibilitatea de a vă conecta profilul cu alte servicii. Există, ...

Alegerea editorilor

Cum se verifică performanța sistemului cu AWS - dummies

Cum se verifică performanța sistemului cu AWS - dummies

AWS (Amazon Web Services) metode pentru monitorizarea serviciilor specifice AWS. Cu toate acestea, este posibil să aveți probleme de performanță a sistemului sau probleme de aplicare non-AWS care trebuie abordate, ceea ce înseamnă că aveți instrumente care pot funcționa în afara AWS. Pachetul de grupuri de instrumente de performanță conține un număr de instrumente specifice pentru realizarea acestei sarcini ...

Cum să alegeți serviciile AWS de care aveți nevoie - dummies

Cum să alegeți serviciile AWS de care aveți nevoie - dummies

Amintiți-vă că aveți doar 12 luni de libertate proces în care să se ia decizii privind serviciile AWS (Servicii Amazon Web) pe care să le utilizați în afacerea dvs. Douăsprezece luni pot părea mult timp, dar veți descoperi că se evaporă înaintea ochilor dvs. în timp ce încercați să vă jonglați responsabilitățile zilnice, întâlnirile ...

Probleme de securitate aWS - dummy

Probleme de securitate aWS - dummy

Pentru a utiliza AWS (Amazon Web Services) cale. Administratorii și profesioniștii în domeniul securității se pot răzbuna rapid, încercând să păstreze aceste computere interconectate în siguranță, dar aceasta face parte din descrierea postului. Trebuie să urmați cele mai bune practici în securizarea sistemelor informatice, a datelor pe care le conțin, ...

Alegerea editorilor

Cum se asamblează o Circuit de organe color - dummies

Cum se asamblează o Circuit de organe color - dummies

După ce ați strâns toate materialele de care aveți nevoie construiți un organ de culoare, sunteți gata să asamblați proiectul. Vedeți ce aveți nevoie pentru a construi un circuit de organe color. Veți avea nevoie de următoarele instrumente: Sârma de lipit, de preferință cu setări de 20 și 40 W Solder Utilizați lipire mai groasă pentru firele de tensiune și subțire ...

Construirea unui Circuit Dead-Bug Style - dummies

Construirea unui Circuit Dead-Bug Style - dummies

) Sunt montate cu capul în jos pe placa de circuit imprimat (PC), majoritatea picioarelor lipindu-se în aer! Arata ca multe. . . morți bug-uri! Un alt nume pentru acest tip de construcție este "circuitele de aer", deoarece componentele sunt atașate direct la ...

Aplicarea RFID în lumea reală - dummies

Aplicarea RFID în lumea reală - dummies

Capacitatea de a urmări și de a urmări, de a urmări și de a găsi, peek sunt toate îmbunătățite prin utilizarea RFID. Unii avocați de confidențialitate vă faceți griji că aparatele vor atașa în mod magic etichetele RFID la îmbrăcăminte sau pantofi pe măsură ce vă plimbați prin magazin sau în jurul unui birou, dar acest lucru este foarte puțin probabil. Limitele ...