Hem Personliga finanser Tuning till tio korta, användbara Perl-program - dummies

Tuning till tio korta, användbara Perl-program - dummies

Innehållsförteckning:

Video: How I held my breath for 17 minutes | David Blaine 2025

Video: How I held my breath for 17 minutes | David Blaine 2025
Anonim

Vissa tror att korta program inte är bra för mycket, men det är inte så med Perl. Bara ett par rader av Perl-kod kan gå långt. Den här artikeln innehåller några praktiska teeny, små Perl-program.

Samla unika rader

Om din textfil har många rader som är dubbletter och du bara vill se de unika raderna kan du samla dem in i en array (i det här fallet kallas den @Unique) med följande program:

öppen (IN, "somefile. Txt"); @ Unique = ();

medan () {med mindre ($ i {$ _} ++) {push (@Unique, $ _)}}

Tricket här är att $ i {$ _} ++ returnerar 0 första gången du skapar ett nyckelvärdespar med $ _ som nyckeln, och en del icke-nollvärde efter det.

Avlägsna flera tomma linjer

Vissa textfiler har flera tomma linjer i följd, vilket gör att de är svåra att läsa, särskilt på små skärmar. Följande program skriver ut en textfil, komprimerar alla instanser av två eller flera tomma linjer i en enda tomlinje.

Obs: En tom linje kan ha blanksteg i den, till exempel mellanslag och flikar, men inga tecken som kan visas.

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

medan () {

om (/ S / eller! $ PrevBlank) {skriv ut $ _}

$ PrevBlank = / ^ s * $ /;

}

Om förklaringen i det föregående exemplet är sant om det inte finns blanka tecken på linjen eller om den föregående raden inte var blank. $ PrevBlank-uppgiften berättar om den aktuella raden är tom, vilket betyder att den har noll eller fler blankstegstegn och inget annat.

Skriva ut linjer från en fil i ordnad ordning

Det är lätt att glömma hur användbar Perl sortsfunktion är. Följande program läser hela filen i en array, sorterar arrayen och skriver resultatet. Kort och söt och ganska effektiv att starta:

öppen (IN, "somefile. Txt");

Skriv sortera ();

Skriva ut en rad rader från en fil

Har du någonsin velat läsa några få rader från en fil, och inte hela grejen? Följande program skriver ut en rad rader. Du kör programmet med två argument: det intervall du vill ha och filnamnet. Till exempel, om du heter ditt program "showline" och du vill se linjer 10 till 20 i partfältet. txt-fil, använder du den här kommandoraden:

showline 10-20 somefile. txt

Följande program skriver ut en rad rader:

öppen (IN, $ ARGV [1]) eller dö "Kunde inte läsa $ File. n”;

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

för ($ i = 1; $ i <= $ stop; $ i + = 1)

{$ Line =; om ($ i> = $ Start) {skriv ut $ Line}}

Visar bara filerna i en katalog

Ibland kanske du ignorerar underkatalogerna i en katalog och fokuserar bara på filerna.Du kan använda följande -f filtest för att lista alla filer i en katalog:

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

Lista en katalog efter storlek

För att sortera en kataloglista med något annat än filnamnen måste ditt program behålla en lista över poster som består av namn och andra objekt i listan. Hashes är bra att använda för den här typen av listor som har poster med en nyckel (filnamnet) och ett värde (den andra kataloginformationen). Följande program skapar en hash som listar storleken på varje fil i katalogen och sorterar sedan objekten för utmatning. (Du kan enkelt ändra detta program för att sortera efter datum istället för efter storlek.)

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

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

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

Sortera kataloger i tillägg

Sortera efter en del av ett filnamn är en något svårare process än sortering efter filstorlek eller vid det datum då filen ändrades. Följande program bryter filnamnet i två och sorterar av den andra delen. Om du kör Perl på ett UNIX- eller Macintosh-system fungerar det här programmet endast förutsägbart om filnamnen inte har någon period eller en period:

foreach $ FullName () {

($ Namn, $ Ext) = delad /. /, $ FullName, 2);

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

}

foreach $ Val (sortera (@ Temp)) {

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

skriv ut "$ FullNamen";

}

Skapa en enkel kalkylator

Har du någonsin behövt en enkel att använda kalkylator för att släcka lite snabb och smutsig matte? Följande program använder Perls eval-funktion för att skriva ut svaren på alla ekvationer du anger. För att avsluta programmet, ange en tom linje. Här är det programmet för att skapa din egen kalkylator:

medan () {

$ i = $ _; chomp ($ i); såvida inte ($ i) {sista}

$ o = eval ($ i); skriv ut "Answer = $ on";

}

När du kör programmet kan du ange något som följande:

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

och du får detta resultat: > Svar = 6817

Randomizing a list

I Perl är generering av slumptal lätt, men det är inte så enkelt att randomisera ordningen för en array. Ändå kan du använda splitsfunktionen för att dra ett slumpmässigt element från en array och placera sedan elementet i en annan matris. Följande program randomiserar listan @MyList:

min @TempList = ();

medan (@MyList)

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

@MyList = @TempList;

Tricket här är att rand (@MyList) väljer ett tal mellan 0 och antalet element i @MyList, och splice ändrar detta slumptal till ett heltal.

Generera slumpmässiga mnemoniska lösenord

Att försöka övertyga datoranvändare att komma med lösenord som inte enkelt gissas är ett av de mest utmanande jobben för en systemadministratör. Människor verkar alltid insistera på att använda sina födelsedatum eller husdjurs namn för lösenord - brott mot säkerhet blir då barns lek.

Följande program genererar slumpmässiga lösenord. Istället för en jumble av svåra att komma ihåg bokstäver, är lösenordet dock lite mnemonic eftersom de förekommer i par av konsonanter och vokaler som är uttalbara.Genom att stränga ihop en del goofy-sounding stavelser, kan du skapa lättanvända nonsensfraser.

Varje stavelse av lösenordet kan representera någon av 100 nummer; därför är ett enkelt lösenord med fyra stavelser, till exempel

votahubo, ett av 100 miljoner (100 till fjärde kraften) möjliga lösenord som programmet genererar. Att ha en systemadministratör tilldela dessa lösenord ger mer säkerhet än att låta användarna välja sina egna, lätt gissade lösenord: Skriv ut "Ange ett frönummer:"; $ s =;

srand ($ s ^ tid);

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

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

för ($ i = 1; $ i <= 4; $ i + = 1)

{skriv ut $ c [int (rand (20))], $ v [int }

De två första raderna i detta program initierar fröet för slumptalsnumren, och de följande två raderna skapar listor som innehåller de 20 konsonanterna (minus

q ) och 5 vokaler i alfabetet. För loop sätter du bara ut de fyra stavelserna.

Tuning till tio korta, användbara Perl-program - dummies

Redaktörens val

Office 365 Grupper - Dummies

Office 365 Grupper - Dummies

Du kan använda Office 365 Grupper, eller helt enkelt grupper, för att snabbt bandet tillsammans med medarbetare till samarbeta utan administrationsansvar som följer med en SharePoint-webbplats. Grupper är inte en del av SharePoint Online. Det är faktiskt en funktion i Exchange Online, men den använder SharePoint Online-funktioner, till exempel OneDrive for Business för att lagra gruppfiler ...

Office 365 Mobil Dokument i molnet - Dummies

Office 365 Mobil Dokument i molnet - Dummies

Varje Office 365-abonnent med en kvalificerad plan kan installera Office mobilappar på upp till fem tabletter och fem smartphones. Kvalificeringsplanerna är: Office for Business Premium, Office 365 Business, Office 365 Pro Plus, Office 365 E3 och Office 365 E5. Kärnan Office-appar finns i Windows, iOS och Android ...

Office Graph och Delve - dummies

Office Graph och Delve - dummies

Office Graph i Office 365 ger en möjlighet för människor att dra nytta av relationer och aktiviteter och göra dem till meningsfulla insikter. De signaler du skickar från e-postkonversationer och möten i Outlook, snabbmeddelanden i Skype for Business, sociala interaktioner på Yammer och dokument i SharePoint Online och OneDrive samlas alla och ...

Redaktörens val

Elektronik Komponenter: Sätt in induktorer till arbete - dummies

Elektronik Komponenter: Sätt in induktorer till arbete - dummies

Om du har undrat vad induktorer används egentligen i elektroniska kretsar i verkligheten, här är några av de vanligaste användningarna för induktorer: Utjämning av spänning i en strömförsörjning: Det sista steget i en typisk strömförsörjningskrets som omvandlar 120 VAC hushållsström till en användbar direkt Nuvarande är ofta en ...

Elektronik Komponenter: Introduktion av mikrokontroller - dummies

Elektronik Komponenter: Introduktion av mikrokontroller - dummies

En mikrokontroller är en komplett dator på en enda elektronisk chip. De kan köpas för $ 50 eller mindre. Liksom alla datorsystem består mikrodatorer av flera grundläggande delsystem: Central Processor (CPU): En CPU utför de instruktioner som tillhandahålls av ett program. CPU kan göra alla nödvändiga åtgärder för ...

Elektronik Komponenter: Motstånd Power Ratings - dummies

Elektronik Komponenter: Motstånd Power Ratings - dummies

Motstånd är som bromsar för ström som strömmar genom en elektronisk krets. Liksom bromsarna i din bil arbetar motstånd genom att använda den elektriska ekvivalenten av friktion till strömningsströmmen. Denna friktion hämmar strömmen av ström genom att absorbera en del av strömens energi och sprida den i form av värme. När du använder en ...

Redaktörens val

Hur man konfigurerar SSH för din webbplats - dummies

Hur man konfigurerar SSH för din webbplats - dummies

Secure shell (SSH) är ett nätverksprotokoll för att tillåta säker datakommunikation. I själva verket är det som en webbhotell bakdörr i ditt system - en som borde förbli låst om du inte behöver använda den. Naturligtvis är exakt hur du konfigurerar SSH olika på alla typer av webbhotell, men som ...

Hur man skapar en ny webbhotell - dummies

Hur man skapar en ny webbhotell - dummies

Du måste skapa din databas inom din webbhotellskontrollpanel och skapa en speciell databasanvändare som har behörighet att komma åt den. När du installerar en webbapplikation eller ett skript som kräver en databas från kontrollpanelen, kommer installationsprogrammet sannolikt att kunna skapa en egen databas och användare. ...

Hur man skapar nya konton på webbhotell med FTP-dummies

Hur man skapar nya konton på webbhotell med FTP-dummies

Du kanske vill att skapa ytterligare konton på en webbhanterad ftp av olika orsaker. Detta möjliggör viss mångsidighet och kontroll för att förbättra din företagsfunktionalitet. Några skäl till att lägga till ett konto är följande: Du vill ge någon annan FTP-åtkomst till din webbplats. Du vill ge någon FTP-åtkomst ...