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 2025

Video: Technology Stacks - Computer Science for Business Leaders 2016 2025
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

10 Transaktioner og funktioner, som de fleste oplysninger konverterer til i QuickBooks Online - dummies

10 Transaktioner og funktioner, som de fleste oplysninger konverterer til i QuickBooks Online - dummies

Følgende listen indeholder detaljer om transaktioner og funktioner, som de fleste data konverterer og sammenlignelige transaktioner og funktioner findes i QuickBooks Online (QBO). I nogle tilfælde findes undtagelser; Du finder specifikke noter i web-ekstraartikel & ldquo; Hvordan QuickBooks Desktop Lister Konverter til QuickBooks Online. & Rdquo; Og for flere oplysninger, besøg QuickBooks ofte stillede spørgsmål, og ldquo; Hvorfor ...

Der producerer betalingsopgørelser i MYOB-dummies

Der producerer betalingsopgørelser i MYOB-dummies

I slutningen af ​​hvert lønningsår (som slutter den 30. juni) kan bruge MYOB til at levere hver medarbejder med et betalingsoversigt. Et betalingsopsamling er et kort dokument, der opsummerer de bruttolønninger, skat og godtgørelser, som medarbejderen har modtaget i løbet af de sidste 12 måneder af ansættelsen. Opsætning af betalingsoversigter Til ...

15 Funktioner, der ikke konverteres og findes ikke i QuickBooks Online

15 Funktioner, der ikke konverteres og findes ikke i QuickBooks Online

Følgende oplysninger viser transaktioner og funktioner, som ikke konverteres fra desktop QuickBooks til QuickBooks Online (QBO) og heller ikke har nogen sammenlignelig funktion i QBO. Selv om en eller flere af disse transaktioner eller funktioner kan være afbrudte afbrydere, skal du huske at for mange af disse funktioner kan du bruge løsninger. Typen af ​​data eller funktional noter ...

Valg af editor

Sådan bruger du FREQUENCY-funktionen i Excel - dummier

Sådan bruger du FREQUENCY-funktionen i Excel - dummier

FREQUENCY-funktionen i Excel tæller værdierne i en array der falder inden for en rækkevidde eller bin. Funktionen bruger følgende syntaks: = FREQUENCY (data_array, bins_array) hvor data_array er det regnearkområde, der indeholder de værdier, du vil tælle, og bins_array er et regnearkområde, der identificerer værdierne eller bakkerne, der ...

Hvordan man bruger målsøgningsfunktionen i Excel 2013 - dummies

Hvordan man bruger målsøgningsfunktionen i Excel 2013 - dummies

, Når du skal analysere , bruger du Excel 2013s målsøgningsfunktion til at finde de indgangsværdier, der er nødvendige for at opnå det ønskede mål. Nogle gange, når du gør hvad-hvis analyse, har du et bestemt udgangspunkt i tankerne, såsom et mål salgsmængde eller vækstprocent. Hvis du vil bruge funktionen Målsøgning placeret på What-If ...

Hvordan man vælger Excel CHOOSE-funktionen i datamodeller - dummier

Hvordan man vælger Excel CHOOSE-funktionen i datamodeller - dummier

Selvom valgmuligheden måske ikke Se nyttige på overfladen, denne funktion kan dramatisk forbedre dine Excel-datamodeller. VÆLG-funktionen returnerer en værdi fra en bestemt liste over værdier baseret på et angivet positionsnummer. Hvis du f.eks. Indtaster formlerne VÆLG (3, "Rød", "Gul", "Grøn", "Blå") i en celle, returnerer Excel ...

Valg af editor

Indlæs en Workflow i SharePoint 2010 - dummies

Indlæs en Workflow i SharePoint 2010 - dummies

Konfigurere dit bibliotek til at bruge en workflow i SharePoint 2010 løser kun en del af problemet. Hvis du ikke har dit bibliotek konfigureret til at kick-off automatisk, skal en person manuelt starte workflowen. Start manuelt en arbejdsgang ved at følge disse trin: Gennemse det element, du vil godkende, klik på rullelisten og vælg Workflows. ...

Bibliotek / Liste Generelle indstillinger Område i SharePoint 2010 - dummies

Bibliotek / Liste Generelle indstillinger Område i SharePoint 2010 - dummies

Bibliotekets generelle indstillinger / listen er blevet udvidet i SharePoint 2010 til at omfatte flere nye indstillinger, herunder validering, kolonne standardværdi (for biblioteker), vurdering, metadata navigation, visningsvisning og formular (for lister). Her er et overblik for at se, hvad du kan gøre med hver af disse muligheder. Generelle indstillinger Konfigurationsindstillinger Indstillingsnavn ...

Importer et regneark som en liste i SharePoint 2010 - dummies

Importer et regneark som en liste i SharePoint 2010 - dummies

Har allerede data i et regneark, som du Vil du være en SharePoint 2010 liste? Du er halvvejs derhen! Før du starter, skal du sørge for at gøre følgende: Rens listen. Sørg for, at din liste ligner et bord uden tomme kolonner eller rækker. Sørg for, at din liste har overskrifter. Alle kolonner skal have en ...