Huis Persoonlijke financiën Afstemmen op tien korte, handige perl-programma's - dummies

Afstemmen op tien korte, handige perl-programma's - dummies

Inhoudsopgave:

Video: Somfy rolluiken afstellen/instellen? Instructies. 2024

Video: Somfy rolluiken afstellen/instellen? Instructies. 2024
Anonim

Sommige mensen denken dat korte programma's niet goed zijn voor heel veel, maar dat is niet het geval met Perl. Slechts een paar regels Perl-code kunnen een lange weg gaan. Dit artikel bevat enkele handige, kleine Perl-programma's.

Unieke regels verzamelen

Als uw tekstbestand veel regels bevat die duplicaten zijn en u alleen de unieke regels wilt zien, kunt u deze in een array verzamelen (in dit geval @Unique genaamd) met het volgende programma:

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

while () {tenzij ($ i {$ _} ++) {push (@Unique, $ _)}}

De truc hier is dat $ i {$ _} ++ de eerste keer 0 retourneert u maakt een sleutel / waarde-paar met $ _ als de sleutel en daarna nog een niet-nulwaarde.

Meerdere lege regels verwijderen

Sommige tekstbestanden hebben meerdere, opeenvolgende lege regels waardoor ze moeilijk te lezen zijn, vooral op kleine schermen. Het volgende programma drukt een tekstbestand af en comprimeert alle exemplaren van twee of meer lege regels in een enkele lege regel.

Opmerking: Een lege regel kan spaties bevatten, zoals spaties en tabs, maar geen zichtbare tekens.

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

while () {

if (/ S / or! $ PrevBlank) {print $ _}

$ PrevBlank = / ^ s * $ /;

}

De if-instructie in het voorgaande voorbeeld is waar als er niet-lege tekens op de regel staan ​​of als de vorige regel niet leeg was. De $ PrevBlank-toewijzing vertelt u of de huidige regel leeg is, wat betekent dat deze nul of meer witruimte-tekens heeft en niets anders.

Lijnen uit een bestand in gesorteerde volgorde afdrukken

Het is gemakkelijk om te vergeten hoe nuttig de sorteerfunctie van Perl is. Het volgende programma leest het volledige bestand in een array, sorteert de array en drukt het resultaat af. Kort en krachtig, en behoorlijk efficiënt om op te starten:

open (IN, "somefile. Txt");

soort afdrukken ();

Een reeks lijnen afdrukken vanuit een bestand

Hebt u ooit slechts een paar regels uit een bestand willen lezen, en niet het hele ding? Het volgende programma drukt slechts een reeks lijnen af. U voert het programma uit met twee argumenten: het bereik dat u wilt en de bestandsnaam. Bijvoorbeeld, als u uw programma "showline" een naam geeft en u de regels 10 tot en met 20 van de somefile wilt zien. txt-bestand, gebruik je deze opdrachtregel:

showline 10-20 somefile. txt

Het volgende programma drukt een reeks regels af:

open (IN, $ ARGV [1]) of sterft "Kon $ bestand niet lezen. n”;

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

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

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

Alleen de bestanden in een map vermelden

Soms wilt u mogelijk de submappen in een map negeren en zich alleen concentreren op de bestanden.U kunt de volgende bestandstest gebruiken om alle bestanden in een map weer te geven:

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

Een map op grootte weergeven

Om een ​​directorylijst te sorteren op iets anders dan de bestandsnamen, moet uw programma een lijst bijhouden van records die bestaan ​​uit de namen en andere items in de lijst. Hashes zijn geweldig om te gebruiken voor dit soort lijst met records met een sleutel (de bestandsnaam) en een waarde (de andere directory-informatie). Het volgende programma maakt een hash aan die de grootte van elk bestand in de map vermeldt en sorteert vervolgens de items voor uitvoer. (U kunt dit programma eenvoudig wijzigen om te sorteren op datum in plaats van op grootte.)

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

foreach $ k (sorteer {$ i {$ b} <= & gt $ i {$ a}} toetsen% i)

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

Sorteren van mappen op extensie

Sorteren op een deel van een bestandsnaam is een iets moeilijker proces dan sorteren op bestandsgrootte of op de datum waarop het bestand werd gewijzigd. Het volgende programma breekt de bestandsnaam in tweeën en sorteert door het tweede deel. Als u Perl gebruikt op een UNIX- of Macintosh-systeem, werkt dit programma alleen voorspelbaar als de bestandsnamen geen periode of een punt bevatten:

foreach $ FullName () {

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

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

}

foreach $ Val (sort (@Temp)) {

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

print "$ FullNamen";

}

Een eenvoudige rekenmachine maken

Hebt u ooit een eenvoudig te gebruiken rekenmachine nodig om snel en vuile wiskunde uit te schakelen? Het volgende programma gebruikt de eval-functie van Perl om de antwoorden op elke vergelijking die u invoert, af te drukken. Om het programma te beëindigen, voert u een lege regel in. Dit is het programma voor het maken van je eigen rekenmachine:

while () {

$ i = $ _; chomp ($ i); tenzij ($ i) {last}

$ o = eval ($ i); print "Antwoord = $ aan";

}

Wanneer u het programma uitvoert, kunt u iets als het volgende invoeren:

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

en u krijgt dit resultaat: > Antwoord = 6817

Willekeurig lijstje

In Perl is het genereren van willekeurige getallen eenvoudig, maar het willekeurig rangschikken van de volgorde van een array is niet zo eenvoudig. Niettemin kunt u de splice-functie gebruiken om een ​​willekeurig element uit een array te trekken en het element vervolgens in een andere array te plaatsen. Het volgende programma maakt de lijst willekeurig @ MijnLijst:

mijn @TempList = ();

while (@MyList)

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

@MyList = @TempList;

De truc hier is dat rand (@MyList) een getal tussen 0 en het aantal elementen in @MyList kiest, en splice verandert dit willekeurige getal in een geheel getal.

Willekeurige mnemonische wachtwoorden genereren

Probeert de computergebruikers over te halen om wachtwoorden te maken die niet gemakkelijk te raden zijn, is een van de meest uitdagende taken voor een systeembeheerder. Mensen lijken altijd erop te staan ​​hun geboortedata of huisdierennamen te gebruiken voor wachtwoorden - beveiliging wordt dan kinderspel.

Het volgende programma genereert willekeurige wachtwoorden. In plaats van een wirwar van moeilijk te onthouden brieven, zijn de wachtwoorden echter enigszins mnemonisch omdat ze verschijnen in paren van medeklinkers en klinkers die uitspreekbaar zijn.Door een paar goofy klinkende lettergrepen met elkaar te verbinden, kun je makkelijk te onthouden onzin-zinnen genereren.

Elke lettergreep van het wachtwoord kan uit 100 cijfers bestaan; daarom is een enkel wachtwoord van vier lettergrepen, zoals

votahubo, een van de 100 miljoen (100 tot de vierde macht) mogelijke wachtwoorden die het programma genereert. Als een systeembeheerder deze wachtwoorden toewijst, biedt dit meer zekerheid dan dat gebruikers hun eigen, gemakkelijk te raden wachtwoorden kunnen kiezen: afdrukken "Voer een seednummer in:"; $ S =;

srand ($ s ^ time);

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

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

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

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

De eerste twee regels van dit programma initialiseren het zaad voor de willekeurige getallen en de volgende twee regels maken lijsten met de 20 medeklinkers (min

q ) en 5 klinkers van het alfabet. De for-lus drukt eenvoudig de vier lettergrepen af.

Afstemmen op tien korte, handige perl-programma's - dummies

Bewerkers keuze

Een Oracle-omgeving instellen - dummies

Een Oracle-omgeving instellen - dummies

Als u een typische PL / SQL-omgeving wilt instellen, hebt u de volgende componenten: Databaseserver: dit is een computer (of een reeks computers) die de Oracle-database uitvoert. Oracle werkt in veel populaire computeromgevingen. De meest gebruikte met Oracle zijn UNIX, Linux of een versie van Microsoft Windows. PL / SQL wordt meestal uitgevoerd ...

SQL-rijwaarden en -waarden - dummies

SQL-rijwaarden en -waarden - dummies

De waarden die worden bewaard in de cellen die de snijpunten van de SQL-database vormen De rijen en kolommen van de tabel zijn de grondstoffen waaruit u zinvolle relaties en trends kunt afleiden. Rijwaarden De meest zichtbare waarden in een database zijn tabelrijwaarden. Dit zijn de waarden die elke rij van een databasetabel ...

SQL eerste, tweede en derde normale vormen - dummies

SQL eerste, tweede en derde normale vormen - dummies

Er zijn drie bronnen van wijzigingsanomalieën in SQL Deze worden gedefinieerd als eerste, tweede en derde normale vormen (1NF, 2NF, 3NF). Deze normale vormen fungeren als remedies voor het wijzigen van anomalieën. Eerste normale vorm Om in de eerste normale vorm (1NF) te zijn, moet een tabel de volgende eigenschappen hebben: De tabel is tweedimensionaal met rijen en ...

Bewerkers keuze

Een kijkje nemen in het syndroom van Empty-Nest - dummies

Een kijkje nemen in het syndroom van Empty-Nest - dummies

Een veel voorkomende misvatting is dat wanneer de kinderen van een stel vertrekken thuis, zullen pappa en mama het syndroom van empty-nest ontwikkelen. Ja, ze hebben misschien een leeg nest, maar voor sommige paren bloeit hun liefdesleven in deze periode van hun leven. De slachtoffers van het syndroom zijn de paren waarvan de relatie uit elkaar valt als zij de enige ...

STD's: wat u moet weten over herpes - dummies

STD's: wat u moet weten over herpes - dummies

Herpes, veroorzaakt door het herpes simplex-virus (HSV) ), is een ongeneeslijke SOA. Herpes heeft eigenlijk twee vormen: herpes simplex-type 1 (HSV-1) en herpes simplex-type 2 (HSV-2). HSV-1 wordt meestal geassocieerd met koortsblaasjes en koortsblaren boven de taille. "Ongeveer 80 procent van de Amerikaanse volwassenen heeft orale herpes. Ongeveer 25 procent van ...

Tiener Geslacht: hoe te weten Hoe ver te gaan - dummies

Tiener Geslacht: hoe te weten Hoe ver te gaan - dummies

Een van de grootste vragen voor tieners is niet "Zou ik seks moeten hebben? "Maar" Hoe ver moet ik gaan? "Terwijl het eigen comfortniveau en dat van de partner de topprioriteit zou moeten zijn in deze beslissing, spelen andere factoren een rol, vooral als tieners dat amorfe concept van" het derde honk overwegen. "" Derde basis "...

Bewerkers keuze

Tien voorwaarden American Football Announcers Gebruik - dummies

Tien voorwaarden American Football Announcers Gebruik - dummies

Een van de moeilijkste en meest intimiderende onderdelen over het volgen van een Amerikaans voetbalwedstrijd is dat de presentatoren soms een vreemde taal lijken te spreken die alleen bekend is bij echte voetballiefhebbers. Maar als je een aantal belangrijke termen onthoudt, ben je ver voor op het spel. Hier zijn enkele voetbaltermen die je misschien hoort, ...

Het begin van een voetbalspel: The Kickoff - dummies

Het begin van een voetbalspel: The Kickoff - dummies

Voor Amerikaanse voetbalfans, de openingsaftrap is een opwindende start voor elke game. Ze zien de tweezijdige sensatie van het ene team dat probeert het andere te blokkeren en helpt de herhaler om door en voorbij 11 snelladers van het trapende team te rennen. (Wel, maak die tien spelers.De kicker staat meestal rond de 50-yard-lijn, ...

Uw voetbalcoachtoelen afstemmen op een leeftijdsgroep - dummies

Uw voetbalcoachtoelen afstemmen op een leeftijdsgroep - dummies

Elk kind in uw team is anders zoveel manieren. Sommigen zijn begaafde hardlopers, anderen kunnen duizelingwekkende vangsten maken en wat moeite om simpelweg de basistechnieken van het spel te vatten. Ongeacht de sterke en zwakke punten van de kinderen, die overal op de kaart staan, hebben jongeren algemene kenmerken die worden beïnvloed ...