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 2024

Video: How I held my breath for 17 minutes | David Blaine 2024
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

ASVAB Aritmetisk Reasoning (Math Word Problem) Practice Questions - Dummies

ASVAB Aritmetisk Reasoning (Math Word Problem) Practice Questions - Dummies

Aritmetik Reasoning questions are math problem som uttrycks i ett historiaformat. Ditt mål är att bestämma vad frågan frågar genom att plocka ut relevanta faktorer som behövs för att lösa problemet, ställa in matematiska ekvationer efter behov och komma fram till rätt lösning. Låter enkelt, eller hur? Provfrågor Försök din hand på följande ...

ASVAB Aritmetisk Reasoning Practice: Pengarproblem - Dummies

ASVAB Aritmetisk Reasoning Practice: Pengarproblem - Dummies

Alla har pengarproblem och den Aritmetiska Reasoning-undersökningen på ASVAB är inget undantag. Den goda nyheten är att du kan lösa problemen på ASVAB med bara en liten algebra. Övningsfrågor Dan köpte en fiskespole från David Edwins Fishing Emporium för 15 dollar. 95. Dan spenderade lite pengar på bete och två gånger ...

ASVAB Aritmetisk Reasoning Practice: Ojämlikheter - dummies

ASVAB Aritmetisk Reasoning Practice: Ojämlikheter - dummies

Den aritmetiska Reasoning-undersökningen på ASVAB kommer att innehålla vissa ojämlikhetsfrågor. Du kan identifiera dem eftersom de innehåller fraser som "åtminstone" och "mindre än eller lika med. "Practice-frågor Express matematiskt: Produkten av x och y är större än eller lika med kvoten av b och c. Benjamin arbetar 15 timmar ...

Redaktörens val

Java Programmering: Läsning av en linje i taget - dummies

Java Programmering: Läsning av en linje i taget - dummies

I denna Java-kodlista, PayOneEmployee Metoden illustrerar några användbara knep för att läsa data. I synnerhet varje skanner som du skapar har en NextLine-metod. (Du kan inte använda den här nästaLine-metoden, men metoden är ändå tillgänglig.) När du ringer en skanners nästaLine-metod tar metoden allt fram till slutet av ...

Java Programmering: Läsning från en fil - dummies

Java Programmering: Läsning från en fil - dummies

Många Java-program läser tecken från datorns tangentbord. Dessa program använder saker som Scanner, System. i och nextDouble - saker definierade i Java API. DoPayroll-programmet i den här listan lägger en ny spinn på den här historien. I stället för att läsa tecken från tangentbordet läser programmet tecken från EmployeeInfo. txt-fil. Filen lever ...

Java Programmering: Att ställa in datorn för att göra någonting - dummies

Java Programmering: Att ställa in datorn för att göra någonting - dummies

I Listning 1 nedan en spräng av Java-kod. Liksom alla nybörjare programmerare, förväntas du gawk ödmjukt vid koden. Men var inte skrämmad. När du hänger på det är programmeringen ganska lätt. Ja, det är roligt också. Listning 1: Ett enkelt Java-program / * * Ett program för att lista ...

Redaktörens val

Hur man lägger till bilder i ditt PowerPoint 2007 Photo Album - dummies

Hur man lägger till bilder i ditt PowerPoint 2007 Photo Album - dummies

Du kan placera bildtexter under bilderna i ditt PowerPoint fotoalbum. PowerPoint placerar först filnamnet i bildtexten, men du kan ta bort den här bildtexten och ange en av dina egna. För att lägga till bildtexter i ditt fotoalbum, följ dessa steg:

Hur man lägger till kommentarer till PowerPoint 2013 Presentationer - dummies

Hur man lägger till kommentarer till PowerPoint 2013 Presentationer - dummies

En kommentar i PowerPoint 2013 är mycket som en fästis. Skönheten i kommentarerna är att du kan slå dem på och av. Därför kan du se kommentarerna medan du redigerar din presentation, och du kan stänga av dem när det är dags för showen. För att lägga till en kommentar till en presentation, ...

Hur man lägger till Clip Art i en PowerPoint 2007 Slide - dummies

Hur man lägger till Clip Art i en PowerPoint 2007 Slide - dummies

PowerPoint Clip Art-uppgiftsrutan som låter dig söka efter nyckelord för en bild för att pryda din PowerPoint-presentation. Första gången du öppnar uppgiftspanelen i PowerPoint Clip Art, frågar en dialogruta att du söker efter hårddisken och katalogiserar alla dina bilder. Då kan du komma åt din ...