Hjem Personlig finansiering Tuning til ti korte, nyttige Perl-programmer - dummier

Tuning til ti korte, nyttige Perl-programmer - dummier

Indholdsfortegnelse:

Video: Technology Stacks - Computer Science for Business Leaders 2016 2024

Video: Technology Stacks - Computer Science for Business Leaders 2016 2024
Anonim

Nogle mener, at korte programmer ikke er gode for meget, men det er ikke sådan med Perl. Bare et par linjer af Perl-kode kan gå langt. Denne artikel indeholder nogle handy teeny, små Perl programmer.

Indsamling af unikke linjer

Hvis din tekstfil har mange linjer, der er dubletter, og du kun vil se de unikke linjer, kan du samle dem ind i en matrix (i dette tilfælde kaldes det @Unique) med følgende program:

åben (IN, "somefile. Txt"); @ Unique = ();

mens () {medmindre ($ i {$ _} ++) {push (@Unique, $ _)}}

Tricket her er, at $ i {$ _} ++ returnerer 0 første gang du opretter et nøgleværdipar med $ _ som nøglen og nogle ikke-nulværdier efter det.

Fjernelse af flere blanke linjer

Nogle tekstfiler har flere blanke linjer i hinanden, hvilket gør dem vanskelige at læse, især på små skærme. Følgende program udskriver en tekstfil, der komprimerer alle forekomster af to eller flere tomme linjer i en enkelt tom linje.

Bemærk: En tom linje kan have hvide rums tegn i den, som f.eks. Mellemrum og faner, men ingen tegn, der kan vises.

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

mens () {

hvis (/ S / eller! $ PrevBlank) {print $ _}

$ PrevBlank = / ^ s * $ /;

}

If-sætningen i det foregående eksempel er sandt, hvis der ikke er blanke tegn på linjen, eller hvis den forrige linje ikke var blank. $ PrevBlank-opgaven fortæller dig, om den nuværende linje er tom, hvilket betyder at den har nul eller flere hvide rumtegn og intet andet.

Udskrivningslinjer fra en fil i rækkefølge

Det er nemt at glemme, hvor nyttigt Perls sorteringsfunktion er. Følgende program læser hele filen i en matrix, sorterer arrayet og udskriver resultatet. Kort og sød, og ret effektiv at starte:

åben (IN, "somefile. Txt");

print sorter ();

Udskrivning af en række linjer fra en fil

Har du nogensinde ønsket at læse nogle få linjer fra en fil, og ikke det hele? Følgende program udskriver kun en række linjer. Du kører programmet med to argumenter: det ønskede interval og filnavnet. For eksempel, hvis du navngiver dit program "showline", og du vil se linjer 10 til 20 i partfilen. txt fil, bruger du denne kommandolinje:

showline 10-20 somefile. txt

Følgende program udskriver en række linjer:

åben (IN, $ ARGV [1]) eller dø "Kunne ikke læse $ File. n”;

($ Start, $ Stop) = delt (/ - /, $ ARGV [0]);

for ($ i = 1; $ i <= $ stop; $ i + = 1)

{$ Line =; hvis ($ i> = $ Start) {print $ Line}}

Viser kun filerne i en mappe

Sommetider kan du ignorere underkatalogerne i en mappe og kun fokusere på filerne.Du kan bruge følgende -f filtest til at liste alle filer i en mappe:

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

Angivelse af en mappe efter størrelse

For at sortere en mappe med andre end dets filnavne, skal dit program beholde en liste over poster, der består af navne og andre elementer i noteringen. Hashes er gode til at bruge til denne slags liste, der har optegnelser med en nøgle (filnavnet) og en værdi (den anden mappeinformation). Følgende program opretter en hash, der angiver størrelsen af ​​hver fil i mappen og sorterer derefter elementerne til output. (Du kan nemt ændre dette program for at sortere efter dato i stedet for efter størrelse.)

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

foreach $ k (sort {$ i {$ b} <= & gt $ i {$ a}} nøgler% i)

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

Sortering af biblioteker efter udvidelse

Sortering af en del af et filnavn er en lidt vanskeligere proces end sortering efter filstørrelse eller den dato, filen blev ændret. Følgende program bryder filnavnet i to og sorterer af den anden del. Hvis du kører Perl på et UNIX- eller Macintosh-system, fungerer dette program kun forudsigeligt, hvis filnavnet ikke har nogen periode eller en periode:

foreach $ FullName () {

($ Navn, $ Ext) = delt /. /, $ FullName, 2);

push (@Temp, "$ Extt $ FullName");

}

foreach $ Val (sort (@Temp)) {

($ Ext, $ FullName) = split (/ t /, $ Val);

Udskriv "$ FullNamen";

}

Oprettelse af en simpel kalkulator

Har du brug for en brugervenlig kalkulator til at slukke for en hurtig og snavset matematik? Følgende program bruger Perls eval-funktion til at udskrive svarene på en ligning, du indtaster. For at afslutte programmet skal du indtaste en tom linje. Her er det program til at oprette din egen regnemaskine:

mens () {

$ i = $ _; Chomp ($ i); medmindre ($ i) {sidste}

$ o = eval ($ i); print "Answer = $ on";

}

Når du kører programmet, kan du indtaste noget som følgende:

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

og du får dette resultat: > Svar = 6817

Randomizing en liste

I Perl er det nemt at generere tilfældige tal, men at randomisere rækkefølgen af ​​en matrix er ikke så simpelt. Ikke desto mindre kan du bruge splejsningsfunktionen til at trække et tilfældigt element fra et array og derefter placere elementet i et andet array. Følgende program randomiserer listen @MyList:

my @TempList = ();

mens (@MyList)

{push (@TempList, splice (@MyList, rand (@MyList), 1))}

@MyList = @TempList;

Tricket her er, at rand (@MyList) vælger et tal mellem 0 og antallet af elementer i @MyList, og splice ændrer dette tilfældige tal til et helt tal.

Generering af tilfældige mnemoniske adgangskoder

Forsøg at overbevise computerbrugere om at komme op med adgangskoder, der ikke let gættes, er et af de mest udfordrende job for en systemadministrator. Folk synes altid at insistere på at bruge deres fødselsdatoer eller kæledyrs navne til adgangskoder - brud på sikkerhed bliver så barns lege.

Følgende program genererer tilfældige adgangskoder. I stedet for en skamplet af svære at huske bogstaver, er passwordsne dog noget mnemoniske fordi de forekommer i par af konsonanter og vokaler, der kan udtages.Ved at sammenføje et par guffe-lydende stavelser, kan du generere let-at-huske nonsens sætninger.

Hver stavelse af adgangskoden kan repræsentere en af ​​100 numre; Derfor er et enkelt fire stavelsesadgangskode, som f.eks.

votahubo, en af ​​100 millioner (100 til den fjerde strøm) mulige adgangskoder, programmet genererer. At have en systemadministrator tildele disse adgangskoder giver mere sikkerhed end at lade brugerne vælge deres egne, let gættede adgangskoder: print "Indtast et frø nummer:"; $ s =;

srand ($ s ^ tid);

@ c = split (/ * /, "bcdfghjklmnprstvwxyz");

@ v = split (/ * /, "aeiou");

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

{udskriv $ c [int (rand (20))], $ v [int (rand (5))] }

De to første linjer i dette program initialiserer frøet for tilfældige tal, og de næste to linjer opretter lister der indeholder de 20 konsonanter (minus

q ) og 5 vokaler i alfabetet. Forløbet udskriver simpelthen de fire stavelser.

Tuning til ti korte, nyttige Perl-programmer - dummier

Valg af editor

Metoder til sikring af overførsler - dummier

Metoder til sikring af overførsler - dummier

Til compTIA A + certificeringsprøverne, du skal forstå de tilgængelige metoder til sikring af transmissioner. Når du har godkendt brugere og autoriseret dem til at få adgang til bestemte dele af netværket, skal du overveje metoder til sikring af oplysninger, mens de bevæger sig langs netværkskablet. De fleste netværkskommunikationer sendes ud via netværkstråden i ...

Ondsindet software (malware) angreb - dummies

Ondsindet software (malware) angreb - dummies

Ondsindet software, også kendt som malware til systemet, såsom en virus eller spyware. Du bør være bekendt med ondsindet software til A + eksamenerne, når du søger din CompTIA A + -certificering. Virus En virus er et program, der forårsager skade på dit system. Typisk er vira spredt igennem ...

Netværkskabel til CCENT-certificeringseksamen - dummies

Netværkskabel til CCENT-certificeringseksamen - dummies

CCENT-certificeringen afprøver dig på de forskellige typer kabler, der bruges i forskellige scenarier. Nedenfor er nogle vigtige punkter at huske om netværkskabler. Rollover-kabel: Et rollover-kabel er også kendt som et konsolkabel og får navnet rollover fordi rækkefølgen af ​​ledningerne fra den ene ende af ...

Valg af editor

Hvordan man tilføjer fotos med din Nikon D5600 - dummies

Hvordan man tilføjer fotos med din Nikon D5600 - dummies

Ud over dens billedkorrigeringsværktøjer tilbyder Retouch-menuen på Nikon D5600-kameraet også følgende special effects-værktøjer, som gør det muligt at justere dine eksisterende digitale billeder: Fisheye: Anvend dette værktøj til at forvrænge billedet, så det ser ud til at være taget med en fisheye linse. Udseendet ligner ...

Justering af flashoutput med en Nikon D3100 eller D5100 - dummies

Justering af flashoutput med en Nikon D3100 eller D5100 - dummies

, Når du optager billeder med din Nikon D3100 eller D5100 og dens indbyggede flash, forsøger kameraet at justere flashudgangen efter behov for at opnå en god eksponering. Men hvis du skyder i eksponeringsindstillingerne P, S, A eller M, og du vil have lidt mere eller mindre blitz, end kameraet ...

Valg af editor

Webklipning i Internet Explorer - dummies

Webklipning i Internet Explorer - dummies

Internet Explorer er den ulige browser, når det kommer til webklipning i Evernote. Du skal bare følge nogle lidt ændrede instruktioner. Hvis du vil bruge Web Clipper i Internet Explorer, skal du følge disse trin: Fremhæv den tekst, du vil klippe, eller (hvis du klipper en hel artikel eller skærm), spring til trin 2. Hvis ...

For seniorer: Sådan animerer objekter på et PowerPoint Slide-dummies

For seniorer: Sådan animerer objekter på et PowerPoint Slide-dummies

Som standard alle objekter på et Microsoft PowerPoint-dias vises på én gang. For at tilføje mere visuel interesse for præsentationen eller for at afsløre bit af information ad gangen, kan du bruge animation i PowerPoint. For eksempel kan du stille et spørgsmål i titlen på diaset og derefter give svaret i ...