Accueil Finances personnelles Syntonisation de dix programmes Perl courts et utiles - mannequins

Syntonisation de dix programmes Perl courts et utiles - mannequins

Table des matières:

Vidéo: You Bet Your Life: Secret Word - Floor / Door / Table 2024

Vidéo: You Bet Your Life: Secret Word - Floor / Door / Table 2024
Anonim

Certaines personnes pensent que les programmes courts ne sont pas bons pour beaucoup, mais ce n'est pas le cas de Perl. Juste quelques lignes de code Perl peuvent aller un long chemin. Cet article répertorie des programmes Perl très pratiques.

Collecte de lignes uniques

Si votre fichier texte contient plusieurs lignes qui sont en double et que vous ne voulez voir que les lignes uniques, vous pouvez les collecter dans un tableau (dans ce cas, @Unique) avec le programme suivant:

ouvrir (IN, "quelquechose.txt"); @ Unique = ();

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

L'astuce ici est que $ i {$ _} ++ retourne 0 la première fois vous créez une paire clé-valeur avec $ _ comme clé, et une valeur non nulle après cela.

Suppression de plusieurs lignes vides

Certains fichiers texte comportent plusieurs lignes vides consécutives, ce qui les rend difficiles à lire, en particulier sur les petits écrans. Le programme suivant imprime un fichier texte en compressant toutes les instances de deux ou plusieurs lignes vides dans une seule ligne vide.

Remarque: Une ligne vide peut comporter des caractères blancs, tels que des espaces et des tabulations, mais aucun caractère affichable.

ouvrir (IN, "un fichier.txt"); $ PrevBlank = 0;

while () {

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

$ PrevBlank = / ^ s * $ /;

}

L'instruction if de l'exemple précédent est vraie s'il y a des caractères non vides sur la ligne ou si la ligne précédente n'était pas vide. L'affectation $ PrevBlank vous indique si la ligne en cours est vide, ce qui signifie qu'elle a zéro ou plusieurs caractères espaces et rien d'autre.

Imprimer des lignes à partir d'un fichier dans l'ordre du tri

Il est facile d'oublier l'utilité de la fonction de tri de Perl. Le programme suivant lit le fichier entier dans un tableau, trie le tableau et imprime le résultat. Court et doux, et assez efficace pour démarrer:

ouvrir (IN, "somefile.txt");

print sort ();

Imprimer une série de lignes à partir d'un fichier

Avez-vous déjà voulu lire seulement quelques lignes d'un fichier, et pas tout? Le programme suivant imprime uniquement une série de lignes. Vous exécutez le programme avec deux arguments: la plage que vous voulez et le nom de fichier. Par exemple, si vous nommez votre programme "showline" et que vous voulez voir les lignes 10 à 20 du fichier. fichier txt, vous utilisez cette ligne de commande:

showline 10-20 unfichier. txt

Le programme suivant imprime une série de lignes:

ouvrir (IN, $ ARGV [1]) ou mourir "Impossible de lire le fichier $. n ";

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

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

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

Liste seulement les fichiers dans un répertoire

Parfois, vous pouvez ignorer les sous-répertoires dans un répertoire et vous concentrer sur les fichiers.Vous pouvez utiliser le test de fichier -f suivant pour lister tous les fichiers d'un répertoire:

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

Liste d'un répertoire par taille

Pour trier une liste de répertoires par autre chose que ses noms de fichiers, votre programme doit conserver une liste d'enregistrements comprenant les noms et autres éléments de la liste. Les hachages sont excellents à utiliser pour ce genre de liste qui a des enregistrements avec une clé (le nom de fichier) et une valeur (les autres informations de répertoire). Le programme suivant crée un hachage qui répertorie la taille de chaque fichier dans le répertoire, puis trie les éléments pour la sortie. (Vous pouvez facilement modifier ce programme pour trier par date plutôt que par taille.)

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

foreach $ k (trier {$ i {$ b} <= & gt $ i {$ a}} clés% i)

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

Tri des répertoires par extension

Le tri par une partie d'un nom de fichier est un processus légèrement plus difficile que le tri par taille de fichier ou par la date à laquelle le fichier a été modifié. Le programme suivant divise le nom de fichier en deux et trie par la seconde partie. Si vous exécutez Perl sur un système UNIX ou Macintosh, ce programme fonctionne de manière prévisible uniquement si les noms de fichiers n'ont pas de période ou de période:

foreach $ FullName () {

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

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

}

foreach $ Val (sort (@Temp)) {

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

imprimez "$ FullNamen";

}

Créer une calculatrice simple

Avez-vous déjà eu besoin d'une calculatrice facile à utiliser pour vous débarrasser d'un calcul rapide? Le programme suivant utilise la fonction eval de Perl pour imprimer les réponses à toute équation que vous entrez. Pour terminer le programme, entrez une ligne vide. Voici ce programme pour créer votre propre calculatrice:

while () {

$ i = $ _; chomp ($ i); sauf si ($ i) {last}

$ o = eval ($ i); print "Réponse = $ sur";

}

Lorsque vous exécutez le programme, vous pouvez entrer quelque chose comme:

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

et vous obtenez ce résultat: > Réponse = 6817

Randomiser une liste

En Perl, générer des nombres aléatoires est facile, mais randomiser l'ordre d'un tableau n'est pas aussi simple. Néanmoins, vous pouvez utiliser la fonction splice pour extraire un élément aléatoire d'un tableau, puis placer l'élément dans un autre tableau. Le programme suivant randomise la liste @MyList:

my @TempList = ();

while (@MyList)

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

@MonList = @TempList;

L'astuce ici est que rand (@MyList) sélectionne un nombre entre 0 et le nombre d'éléments dans @MyList, et splice change ce nombre aléatoire en entier.

Générer des mots de passe mnémoniques aléatoires

Essayer de convaincre les utilisateurs d'ordinateurs de trouver des mots de passe difficiles à deviner est l'une des tâches les plus difficiles pour un administrateur système. Les gens semblent toujours insister sur l'utilisation de leur date de naissance ou des noms d'animaux de compagnie pour les mots de passe - briser la sécurité devient alors un jeu d'enfant.

Le programme suivant génère des mots de passe aléatoires. Au lieu d'un fouillis de lettres difficiles à retenir, cependant, les mots de passe sont quelque peu mnémoniques parce qu'ils apparaissent dans des paires de consonnes et de voyelles qui sont prononçables.En enchaînant quelques syllabes goofy-sounding, vous pouvez générer des phrases non-sens faciles à mémoriser.

Chaque syllabe du mot de passe peut représenter n'importe lequel des 100 nombres; par conséquent, un seul mot de passe de quatre syllabes, tel que

votahubo, , est l'un des 100 millions de mots de passe possibles (100 à la puissance 4) que le programme génère. Le fait qu'un administrateur système attribue ces mots de passe offre plus de sécurité que de laisser les utilisateurs choisir leurs propres mots de passe, faciles à deviner: print "Entrez un numéro de départ:"; $ s =;

srand ($ s ^ heure);

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

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

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

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

Les deux premières lignes de ce programme initialisent la graine pour les nombres aléatoires, et les deux suivantes créent des listes contenant les 20 consonnes (moins

q ) et 5 voyelles de l'alphabet. La boucle for imprime simplement les quatre syllabes.

Syntonisation de dix programmes Perl courts et utiles - mannequins

Le choix des éditeurs

Création de graphiques avec Fireworks CS5 Outils vectoriels - dummies

Création de graphiques avec Fireworks CS5 Outils vectoriels - dummies

Les outils Vector dans Adobe Fireworks Creative Suite 5 sont similaires à celles auxquelles vous êtes habitué dans Illustrator ou Photoshop. Vous devriez remarquer dès le départ dans Fireworks qu'à chaque fois que vous créez une nouvelle forme vectorielle avec l'un des outils vectoriels (comme Line, Pen, Shape ou Type), Fireworks crée ...

Comment exporter des tranches dans Fireworks CS5 - les nuls

Comment exporter des tranches dans Fireworks CS5 - les nuls

Découpage est une technique permettant de fractionner des fichiers volumineux en paquets plus petits ils téléchargent plus vite. Une fois que vous avez découpé votre illustration dans Adobe Fireworks Creative Suite 5, vous pouvez exporter les coupes finales pour les utiliser sur une page Web. Vous pouvez exporter des tranches Fireworks sous forme de tableaux html ou de feuilles de style en cascade (CSS). Pour exporter en tranches ...

Comment créer des images avec des outils Bitmap dans Adobe Fireworks CS6 - des mannequins

Comment créer des images avec des outils Bitmap dans Adobe Fireworks CS6 - des mannequins

Adobe Photoshop CS6 a certains outils qui fonctionnent différemment des outils similaires dans d'autres applications Adobe: les outils bitmap de Flou, Pinceau, Gomme, Lasso, Baguette magique, Marquee, Crayon et Rubber Stamp. Si vous ne voyez pas le panneau Outils, choisissez Fenêtre → Outils. Comment sélectionner des pixels avec des outils bitmap Les outils de sélection vous permettent de saisir ...

Le choix des éditeurs

ISO et Image Noise avec le Nikon D3300 - mannequins

ISO et Image Noise avec le Nikon D3300 - mannequins

Idéalement, vous devez toujours utiliser le réglage ISO le plus bas sur votre Nikon D3300 pour assurer une qualité d'image optimale. À mesure que l'ISO augmente, rendant le capteur d'image plus réactif à la lumière, vous augmentez le risque de produire du bruit. Le bruit est un défaut qui ressemble à des grains de sable et ressemble ...

Comment afficher les paramètres d'image sur le Nikon D3300 - dummies

Comment afficher les paramètres d'image sur le Nikon D3300 - dummies

Votre appareil photo Nikon D3300 conserve une trace de paramètres de prise de vue et vous permet de les voir pendant la prise de vue. Votre appareil photo vous propose les moyens suivants pour surveiller les paramètres de prise de vue les plus importants: Écran d'information (photographie du viseur): L'écran de gauche de la figure vous donne un aperçu de l'écran d'informations disponible pour la photographie du viseur. ...

Le choix des éditeurs

Où placer un numéro de page dans Word 2007 - mot de passe

Où placer un numéro de page dans Word 2007 - mot de passe

Mot 2007 peut numéroter automatiquement vos pages et vous permet de placer le numéro de page n'importe où sur la page (en haut, en bas ou sur les côtés) dans une variété de formats. Si vous supprimez ou renumérotez une page, Word les renumérote automatiquement pour vous.

En mode plein écran dans Word pour Mac 2011 - pour les nuls

En mode plein écran dans Word pour Mac 2011 - pour les nuls

, Il existe une nouvelle vue Plein écran dans Word pour Mac 2011 qui vous permet de modifier ou simplement de lire un document sans l'encombrement du ruban Office 2011 pour Mac, des règles et autres distractions. La vue Plein écran est en fait deux vues en une: Vous pouvez choisir le mode Lecture ou le mode Ecriture. Passage en plein écran ...

À L'aide de l'option Imprimer la mise en page dans Word pour Mac 2011 - dummies

À L'aide de l'option Imprimer la mise en page dans Word pour Mac 2011 - dummies

Mac est un bon point de départ pour les débutants car ce que vous voyez à l'écran est le plus proche de ce que vous obtenez lorsque vous imprimez. La vue Imprimer la mise en page est également utile à titre d'exemple pour expliquer la disposition générale de l'interface de Word. Les vues Brouillon et Contour dans ...