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

Vantaggi di base della rete - manichini

Vantaggi di base della rete - manichini

Se la verità viene detta, le reti di computer sono un problema da impostare. Perché i vantaggi di avere una rete rendono la pena di crearne uno utile. Non è necessario essere un dottorato di ricerca per comprendere i vantaggi del networking. Le reti riguardano esclusivamente la condivisione. Nello specifico, le reti riguardano la condivisione di tre elementi: informazioni, risorse, ...

Biometria L'accettazione, la privacy e la legge - manichini

Biometria L'accettazione, la privacy e la legge - manichini

La tecnologia biometrica non è affatto universalmente accettata da tutti gli utenti. Ci sono una serie di considerazioni sociali e legali che danno ad ogni organizzazione una pausa prima di fare il salto a capofitto nell'implementazione di un sistema biometrico. Le persone sono più a loro agio con i sistemi di raccolta biometrici che sono i meno intrusivi. Scanner per retina e nasi elettronici sono ...

Biometria Nozioni di base - manichini

Biometria Nozioni di base - manichini

La biometria non è roba da fantascienza. Puoi trovare una dozzina di modi più o meno efficaci per utilizzare la biometria per identificare qualcuno, ognuno dei quali si divide in due classi: la biometria fisiologica misura una parte specifica della struttura o della forma di una porzione del corpo di un soggetto. La biometria comportamentale è più interessata a come ...

Scelta dell'editore

Come creare un nuovo dizionario personalizzato in Excel 2007 - dummies

Come creare un nuovo dizionario personalizzato in Excel 2007 - dummies

In Excel 2007, è possibile creare dizionari personalizzati da utilizzare quando si esegue il controllo ortografico dei fogli di lavoro. Utilizzare il pulsante Aggiungi al dizionario nella finestra di dialogo Controllo ortografico per aggiungere parole sconosciute a un dizionario personalizzato. Per impostazione predefinita, Excel aggiunge queste parole a un file dizionario personalizzato denominato CUSTOM. DIC, ma è possibile creare una nuova personalizzazione ...

Come creare un componente aggiuntivo da un file di cartella di lavoro Excel Excel normale in VBA - modi di dire

Come creare un componente aggiuntivo da un file di cartella di lavoro Excel Excel normale in VBA - modi di dire

Sebbene sia possibile convertire qualsiasi cartella di lavoro di Excel in un componente aggiuntivo, non tutte le cartelle di lavoro traggono vantaggio da questa conversione. Una cartella di lavoro senza macro rende un componente aggiuntivo inutile. In effetti, gli unici tipi di cartelle di lavoro che traggono vantaggio dall'essere convertiti in un componente aggiuntivo sono quelli con macro. Ad esempio, una cartella di lavoro costituita da macro generiche (Sub ...

Come creare una nuova cartella di lavoro in Excel 2010 - dummy

Come creare una nuova cartella di lavoro in Excel 2010 - dummy

Se si lavora in Microsoft Excel 2010 e vuoi iniziare a lavorare in un nuovo file di cartella di lavoro di Excel, puoi facilmente creare una nuova cartella di lavoro. Per fare ciò, puoi usare un comando nella scheda File o una scorciatoia da tastiera. Fare clic sulla scheda File. Excel visualizza la visualizzazione Backstage, in cui è possibile accedere ai comandi relativi ai file. ...

Scelta dell'editore

Usa lo strumento Gomma in Adobe Illustrator CS5 - manichini

Usa lo strumento Gomma in Adobe Illustrator CS5 - manichini

Adobe Illustrator Creative Suite 5 (Adobe CS5) Illustrator è utilizzato per rimuovere rapidamente aree di grafica con la stessa facilità con cui si cancellano i pixel in Photoshop, accarezzando con il mouse su qualsiasi forma o gruppo di forme. Facendo doppio clic sullo strumento Gomma, è possibile definire il diametro, l'angolo e la rotondità della gomma. Se stai usando un ...

Trasforma gli strumenti in Adobe Illustrator CS5 - dummies

Trasforma gli strumenti in Adobe Illustrator CS5 - dummies

I più popolari strumenti di trasformazione in Adobe Creative Suite 5 (Adobe CS5) Illustrator - Rifletti, scala, inclina, rimodella e Trasformazione libera: sono facili da usare e modificano rapidamente la tua illustrazione. Lo strumento Rifletti Niente è simmetrico, giusto? Forse no, ma gli oggetti non creati simmetricamente in Illustrator possono sembrare off-kilter. Utilizzando lo strumento Rifletti, si ...

Quando utilizzare Adobe CS5 Illustrator - dummies

Quando utilizzare Adobe CS5 Illustrator - dummies

Utilizzando Adobe Creative Suite 5 (Adobe CS5) Illustrator anziché Photoshop , ottieni diversi benefici. Potresti aver sentito che Illustrator è migliore per la grafica vettoriale, ma perché e che altro porta? Illustrator può salvare ed esportare immagini nella maggior parte dei formati di file. Scegliendo di salvare o esportare, è possibile creare un ...