Casa Finanza personale Sintonizzazione su dieci brevi, utili programmi Perl - manichini

Sintonizzazione su dieci brevi, utili programmi Perl - manichini

Sommario:

Video: Google Keynote (Google I/O'19) 2025

Video: Google Keynote (Google I/O'19) 2025
Anonim

Alcune persone credono che i programmi brevi non siano validi per molto, ma non è così per Perl. Solo un paio di righe di codice Perl possono fare molto. In questo articolo sono elencati alcuni utili programmi per bambini piccoli e minuscoli.

Raccolta di linee univoche

Se il tuo file di testo ha molte linee che sono duplicate e vuoi vedere solo le linee univoche, puoi raccoglierle in un array (in questo caso, si chiama @Unique) con il seguente programma:

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

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

Il trucco qui è che $ i {$ _} ++ restituisce 0 la prima volta crei una coppia chiave-valore con $ _ come chiave e dopo un valore diverso da zero.

Eliminazione di più righe vuote

Alcuni file di testo hanno più righe vuote consecutive che li rendono difficili da leggere, in particolare su schermi piccoli. Il seguente programma stampa un file di testo, comprimendo tutte le istanze di due o più righe vuote in una singola riga vuota.

Nota: Una riga vuota può contenere caratteri di spaziatura, come spazi e tabulazioni, ma nessun carattere visualizzabile.

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

while () {

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

$ PrevBlank = / ^ s * $ /;

}

L'istruzione if nell'esempio precedente è vera se nella riga sono presenti caratteri non vuoti o se la riga precedente non è vuota. L'assegnazione $ PrevBlank ti dice se la riga corrente è vuota, ovvero che ha zero o più caratteri di spazi bianchi e nient'altro.

Stampa di linee da un file in ordine

È facile dimenticare quanto sia utile la funzione di ordinamento di Perl. Il seguente programma legge l'intero file in un array, ordina l'array e stampa il risultato. Breve e dolce, e abbastanza efficiente da avviare:

open (IN, "somefile. Txt");

stampa sort ();

Stampa di un intervallo di righe da un file

Hai mai desiderato leggere solo poche righe da un file e non il tutto? Il seguente programma stampa solo una serie di linee. Si esegue il programma con due argomenti: l'intervallo desiderato e il nome file. Ad esempio, se si nomina il programma "showline" e si desidera vedere le righe da 10 a 20 del file di testo. file txt, si utilizza questa riga di comando:

showline 10-20 somefile. txt

Il seguente programma stampa un intervallo di linee:

open (IN, $ ARGV [1]) o die "Impossibile leggere $ File. n”;

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

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

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

Elenco solo dei file in una directory

A volte, potresti voler ignorare le sottodirectory in una directory e concentrarti solo sui file.È possibile utilizzare il seguente test del file -f per elencare tutti i file in una directory:

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

Elenco di una directory per dimensione

Per ordinare, un elenco di directory diverso da quello dei nomi di file, il programma deve conservare un elenco di record costituito dai nomi e da altri elementi nell'elenco. Gli hash sono fantastici da utilizzare per questo tipo di elenco che contiene i record con una chiave (il nome del file) e un valore (le altre informazioni sulla directory). Il seguente programma crea un hash che elenca le dimensioni di ciascun file nella directory e quindi ordina gli elementi per l'output. (Puoi facilmente modificare questo programma per ordinare per data invece che per dimensione.)

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

foreach $ k (ordina {$ i {$ b} <= & gt $ i {$ a}} chiavi% i)

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

Ordinamento di directory per estensione

L'ordinamento per porzione di un nome file è un processo leggermente più difficile dell'ordinamento in base alla dimensione del file o alla data in cui il file è stato modificato. Il seguente programma spezza il nome del file in due e tipi dalla seconda parte. Se esegui Perl su un sistema UNIX o Macintosh, questo programma funziona in modo prevedibile solo se i nomi file non hanno periodo o periodo:

foreach $ FullName () {

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

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

}

foreach $ Val (sort (@Temp)) {

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

stampa "$ FullNamen";

}

Creazione di una calcolatrice semplice

Hai mai avuto bisogno di una calcolatrice semplice da utilizzare per eliminare una matematica veloce e sporca? Il seguente programma usa la funzione eval di Perl per stampare le risposte a qualsiasi equazione inserita. Per terminare il programma, inserisci una riga vuota. Ecco il programma per creare la tua calcolatrice:

while () {

$ i = $ _; chomp ($ i); a meno che ($ i) {last}

$ o = eval ($ i); stampa "Rispondi = $ on";

}

Quando si esegue il programma, è possibile immettere qualcosa come la seguente:

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

e si ottiene questo risultato: > Risposta = 6817

Randomizzazione di una lista

In Perl, la generazione di numeri casuali è facile, ma la randomizzazione dell'ordine di un array non è così semplice. Tuttavia, è possibile utilizzare la funzione di giunzione per estrarre un elemento casuale da una matrice e quindi posizionare l'elemento in un'altra matrice. Il seguente programma randomizza la lista @MyList:

my @TempList = ();

while (@MyList)

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

@MyList = @TempList;

Il trucco qui è che rand (@MyList) seleziona un numero compreso tra 0 e il numero di elementi in @MyList, e la giuntura cambia questo numero casuale in un numero intero.

Generazione di password mnemoniche casuali

Cercare di convincere gli utenti di computer a trovare password che non siano facilmente indovinate è uno dei lavori più impegnativi per un amministratore di sistema. Le persone sembrano sempre insistere nell'usare le loro date di nascita o nomi di animali domestici per le password - infrangere la sicurezza diventa quindi un gioco da ragazzi.

Il seguente programma genera password casuali. Invece di un miscuglio di lettere difficili da ricordare, tuttavia, le password sono in qualche modo mnemoniche perché appaiono in coppie di consonanti e vocali che sono pronunciabili.Stringendo insieme alcune sillabe che suonano sciocchezze, puoi generare frasi senza senso facili da ricordare.

Ogni sillaba della password può rappresentare uno qualsiasi dei 100 numeri; pertanto, una singola password di quattro sillabe, come

votahubo, è una delle 100 milioni (100 alla quarta potenza) possibili password generate dal programma. L'assegnazione di queste password da parte di un amministratore di sistema offre più sicurezza che consentire agli utenti di scegliere le proprie password facili da indovinare: print "Enter a seed number:"; $ s =;

srand ($ s ^ volta);

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

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

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

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

Le prime due righe di questo programma inizializzano il seme per i numeri casuali e le due righe successive creano elenchi contenenti le 20 consonanti (meno

q ) e 5 vocali dell'alfabeto. Il ciclo for stampa semplicemente le quattro sillabe.

Sintonizzazione su dieci brevi, utili programmi Perl - manichini

Scelta dell'editore

HDR Fotografia: Regola le impostazioni in Photomatix Dettagli Enhancer - dummies

HDR Fotografia: Regola le impostazioni in Photomatix Dettagli Enhancer - dummies

Dettagli Enhancer in Photomatix Pro ti consente di toni mappa le tue immagini ad alta gamma dinamica (HDR). Come puoi vedere da questa figura, ci sono un certo numero di controlli. Per fortuna, sono ben organizzati in aree funzionali. Le tre finestre mobili mostrano le impostazioni, l'anteprima dell'immagine e l'istogramma. Forza: controlla la forza di potenziamento del contrasto, sia locale ...

HDR Fotografia - Miscela materiale da fonti alternative - manichini

HDR Fotografia - Miscela materiale da fonti alternative - manichini

Cerca le aree dove potresti aver bisogno per mescolare il materiale da fonti alternative. Ad esempio, se una parte del cielo è saltata fuori, potresti voler sostituire il cielo scoppiato con una versione che è stata mappata in modo diverso in modo che il cielo appaia meglio (ciò che spesso accade è il resto ...

HDR Fotografia: scegli un formato file - dummies

HDR Fotografia: scegli un formato file - dummies

Quando crei un'immagine ad alta gamma dinamica, spesso viene data la possibilità di salvarlo come file HDR per un uso successivo. Se lo si salva come file HDR dipende in parte dalle preferenze e in parte da ciò che si intende fare. Normalmente, salti a destra nella mappatura dei toni, salva il minimo finale ...

Scelta dell'editore

Farmaci Opzioni per gestire la rabbia - manichini

Farmaci Opzioni per gestire la rabbia - manichini

La maggior parte dei programmi di gestione della rabbia non affronta il problema dei farmaci. In parte, probabilmente perché i farmaci non sono in realtà un modo per gestire la tua rabbia. E gli studi sull'efficacia dei farmaci per la rabbia sono stati alquanto incoerenti. Tuttavia, dovresti sapere che i farmaci possono essere un'opzione per alcune persone, specialmente quando altri disturbi emotivi, come ...

Gestione di amici e parenti con intelligenza emotiva - manichini

Gestione di amici e parenti con intelligenza emotiva - manichini

Ecco alcuni modi in cui si praticano tecniche di intelligenza emotiva con amici intimi e i parenti possono aiutarti a disinnescare situazioni difficili ea mantenere relazioni equilibrate e soddisfacenti con i tuoi cari. A partire dal finale le persone a volte interrompono completamente i contatti con parenti e amici e potresti trovarti in una situazione in cui ...

Mini questionario motivazionale - manichini

Mini questionario motivazionale - manichini

Dai un'occhiata al seguente elenco di compiti e decidi se vuoi ottenerne uno. Seleziona le attività che pensi di voler intraprendere: Acquistare una nuova casa Decorare la tua casa Sviluppare uno stile di vita più salutare Ottenere un nuovo lavoro Ottenere una promozione di lavoro Passare gli esami Lavorare per un ...

Scelta dell'editore

Come identificare i trigger di rabbia - dummies

Come identificare i trigger di rabbia - dummies

Conoscere i trigger di rabbia - gli eventi e le situazioni che ti fanno impazzire - è importante perché risponderai in modo più efficace alla tua rabbia quando ti sentirai preparato. Anticipare la possibilità di rabbia aumenta la capacità di esprimerlo in modo più costruttivo. Ecco alcuni trigger di rabbia comuni. Molte persone si sentono ...

Come misurare il tuo stress - manichini

Come misurare il tuo stress - manichini

Riconoscere i sintomi dello stress e quanto spesso si verificano può aiutarti ad affrontare lo stress. Utilizza le due settimane precedenti come periodo di tempo e registra l'occorrenza dei seguenti segni e sintomi fisici ed emotivi di stress. Dopo aver identificato i sintomi dello stress e quanto spesso si verificano, utilizzare la scala di valutazione dello stress per trovare il ...

Come calmare la mente - dummies

Come calmare la mente - dummies

Trovare modi per ridurre i livelli di stress aumenterà la tua felicità. A volte distrarti non è abbastanza per calmare la tua mente. A volte avete bisogno di misure più forti per eliminare, o almeno rallentare, quelle preoccupazioni e preoccupazioni indesiderate e che producono stress. Forse hai una preoccupazione inquietante che ti intrude continuamente nel tuo pensiero e ti impedisce di goderti ...