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) 2024

Video: Google Keynote (Google I/O'19) 2024
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

Come utilizzare le funzionalità dell'app Klout su dispositivi Apple - dummies

Come utilizzare le funzionalità dell'app Klout su dispositivi Apple - dummies

L'esperienza mobile di Klout è più limitato rispetto al sito web completo. Tuttavia, molte funzionalità sono ancora disponibili con l'app per dispositivi mobili, incluso dare + K ai tuoi influenzatori, controllare il tuo punteggio Klout e apportare semplici modifiche al tuo profilo. E con l'implementazione di Klout per il tuo iPhone Passbook puoi persino usare Klout per ottenere ...

Metriche dei social media: App Android SDK di Google Analytics - dummies

Metriche dei social media: App Android SDK di Google Analytics - dummies

Tracciamento delle metriche di un'applicazione ( un'app) è stata semplificata, ma le app sono ancora isolate. Puoi tenere traccia di ogni app, ma le soluzioni sono ancora in fase di creazione per tenere traccia di tutte le app. Per andare avanti con Google Analytics SDK per la tua app Android, segui questi passaggi: Scarica l'SDK di Google Analytics per Android. Aggiungi la libreria libGoogleanalytics. jar ...

Metriche sui social media: individuazione del momento di trazione con Google+ - dummies

Metriche sui social media: individuazione del momento di trazione con Google+ - dummies

In i social media, il momento di trazione potrebbe anche essere chiamato il "miglior tempo per condividere su Google+ o altri siti sociali. "Il momento migliore per te potrebbe non essere il momento migliore per i tuoi colleghi generatori di contenuti. (Il merito di questo suggerimento principale va a Christopher Penn che per primo condivise la sua osservazione sulla ricerca ...

Scelta dell'editore

Combinazione di due foto sulla tua Nikon D3400 con sovrapposizione immagini - manichini

Combinazione di due foto sulla tua Nikon D3400 con sovrapposizione immagini - manichini

L'opzione Sovrapposizione immagini sulla Il menu di ritocco di Nikon D3400 consente di unire due foto in una. Questa opzione è stata utilizzata per combinare una foto di un lupo mannaro, mostrato a sinistra, con una scena da giardino notturno, mostrata nel mezzo. Il risultato è l'immagine spettrale mostrata a destra. Oooh, spaventoso! Su ...

Scelta di una modalità Esposizione per una Nikon DSLR - manichini

Scelta di una modalità Esposizione per una Nikon DSLR - manichini

La prima impostazione da prendere in considerazione quando si le riprese con la tua Nikon D3100, D5100 o D7000 sono la modalità di esposizione, che puoi selezionare tramite la ghiera dei modi. La tua scelta determina la quantità di controllo che hai rispetto a due impostazioni di esposizione critiche - diaframma e tempo di posa - oltre a molte altre opzioni, incluse quelle relative ...

Scelta del formato immagine JPEG per una reflex Nikon - dummies

Scelta del formato immagine JPEG per una reflex Nikon - dummies

Offerte Nikon D3100, D5100 o D7000 i due tipi di file comuni nella maggior parte delle fotocamere digitali odierne: JPEG e Camera Raw, o semplicemente Raw in breve, che passa dallo specifico moniker NEF (Nikon Electronic Format) sulle fotocamere Nikon. Il tipo di file, talvolta noto anche come formato file, determina come i dati dell'immagine ...

Scelta dell'editore

Comprensione della struttura delle classi Java - dummies

Comprensione della struttura delle classi Java - dummies

Impossibile creare un'applicazione Java senza creare una classe. Tuttavia, i modi in cui si usano le classi all'inizio quando si apprendono su di essi sono stati relativamente semplicistici - Java è in grado di avere una complessità considerevolmente maggiore, che è il punto di questo capitolo. Le classi hanno una struttura specifica. Proprio come i progetti ...

Come utilizzare i metodi astratti in Java - dummies

Come utilizzare i metodi astratti in Java - dummies

Sia le interfacce che le classi astratte hanno metodi astratti in Java. Ma i metodi astratti giocano ruoli leggermente diversi in questi due tipi di tipi di riferimento. Come puoi tenere tutto dritto nella tua mente? La prima cosa da fare è ricordare che nessuno impara a conoscere i concetti di programmazione orientata agli oggetti senza ottenere molti ...

Come utilizzare l'interfaccia CharSequence in Java - dummies

Come utilizzare l'interfaccia CharSequence in Java - dummies

L'API Java include un'interfaccia utile chiamata CharSequence. Tutte e tre queste classi - String, StringBuilder e StringBuffer - implementano questa interfaccia. Questo metodo esiste principalmente per consentire di utilizzare String, StringBuilder e StringBuffer in modo intercambiabile. A tal fine, molti dei metodi delle classi String, StringBuilder e StringBuffer utilizzano CharSequence come parametro ...