Codage des connexions en Perl (2 / 6 étapes)

Étape 2: Modèle Simple

Perl a essentiellement 3 types de données primitifs. Piqûres, les tableaux indexés et les tableaux associatifs.
J’ai découvert très dès le départ, qu'il était plus facile pour moi de travailler avec des pointeurs vers ces structures et hors de référence si nécessaire. Tableaux associatifs se prêtent bien à des jumelages de la valeur de la clé. Cependant, ce n’est pas l’issue de cet examen, tel qu’une clé peut mapper à plusieurs valeurs. Selon l’application, strictement définissant la valeur de l’association peut écraser une valeur antérieure. Nous allons donc voir comment nous pourrions modeler plusieurs valeurs qui sont mappés à une clé.

Examiner les approches suivantes :

Code :

 #!/usr/bin/perl <br>use strict; # Just do it! use warnings; use Data::Dumper; <br> my $key1 = 'city1'; my $key2 = 'city2'; my $key3 = 'city3'; my $val1 = 'zip1'; my $val2 = 'zip2'; my $val3 = 'zip3'; my $val4 = 'zip1'; my = ($val1,$val3,$val4); # Make a quick list Notice the repeated value my $hashref; # Initialize the structure 
 #approach 1 hash of string-tokens foreach my $value ( { if ($hashref->{$key1}) { my $current_value = $hashref->{$key1}; $hashref->{$key1} = $current_value . "," . $value; }else{ $hashref->{$key1} = $value; } } # print Dumper $hashref; 
 #approach 2 key-assoc-cnt hash foreach my $value ( { if ($hashref->{$key2}->{$value}) { $hashref->{$key2}->{$value} ++; }else{ $hashref->{$key2}->{$value} = 1; } } # print Dumper $hashref; 
 #approach 3 hash - array associations foreach my $value ( { if ($hashref->{$key3}) { push( , $value); #switch order push vs unshift }else{ $hashref->{$key3} = [ $value ]; } } print Dumper $hashref; 

Sortie :

 #perl association_approaches.pl<br>$VAR1 = { 'city2' => { 'zip3' => 1, 'zip1' => 2 }, 'city1' => 'zip1,zip3,zip1', 'city3' => [ 'zip1', 'zip3', 'zip1' ] }; 

Dans chacune de ces approches, le comportement est déterminé par l’existence / définition de la clé. En outre, les méthodes de tirer parti de Perls "autovivification" concept. Chaque clé s’accumulent d’une série de « jetons ». Dans la première approche, la valeur d’une clé est directement utilisée sous forme de chaîne. Si plus d’un jeton est requis, il est ajouté à la chaîne séparée par un caractère arbitraire. Dans ce cas, il serait une virgule, mais plus généralement, il peut être sélectionnée pour permettre de jetons avec la fonction split. Dans la seconde approche, la valeur est gardée séparée en rendant une autre couche de liaison. En fin de compte, le hachage devront se voir assigner une valeur. Il pourrait être fixé à n’importe quel nombre de valeurs. La valeur sélectionnée est initialisée à 1 et en incrémentant dans les inscriptions subséquentes. La troisième approche examine l’utilisation de tableaux indexés pour chacune des valeurs.

La première approche a été utilisée dans une application, où j’avais un peu plus d’un manque de temps. Il montre son éducation comme quelque chose qui permet de gérer les fichiers csv. J’ai trouvé que des jetons est devenu plus compliqués il est devenu plus difficile et plus difficile à choisir un séparateur de jeton fiable. Quand j’ai eu le temps de revenir en arrière et évaluer des approches alternatives, j’ai trouvé que j’ai aimé la deuxième approche. Où le troisième approche était lourd pour mon application, la deuxième approche a offert la possibilité de créer une liste unique avec l’avantage de compter le nombre de fois la paire a été définie. Dans ma demande, l’ordre d’entrée n’était pas important, tant que pouvoir itérer sur l’ensemble des touches. applications où la commande est encore plus important, l’utilisation de tableaux est plus logique.

Maintenant nous allons voir ce que nous pouvons faire avec le numéro 2 de la démarche.

 # original hash from approach 2 $VAR1 = { 'city2' => {<br> 'zip3' => 1, 'zip1' => 2 } } 
 # Extending from approach 2 above # Reverse it my $revhash = {}; foreach my $key (keys(%$hashref)){ foreach my $val (keys(%{$hashref->{$key}})){ $revhash->{$val}->{$key} = $hashref->{$key}->{$val}; } } print Dumper $revhash; 

Sortie :

 #perl revit.pl $VAR1 = { 'zip3' => { 'city2' => 1 }, 'zip1' => { 'city2' => 2 } }; # 

Remarquez comment les clés et valeurs ont échangées, et que le nombre de liens reste la même.

Articles Liés

Décodage des Messages secrets de l’espace !

Décodage des Messages secrets de l’espace !

Cette instructable montre mes tentatives de décodage des messages secrets de l'espace... en forme de transformations de Fourier de photos de superamas. Laissez-moi expliquer.Je lisais dans mon traitement d'Image numérique livre (2ème édition) sur que
Comment faire des Bracelets de perles avec perles acryliques

Comment faire des Bracelets de perles avec perles acryliques

PandaHall bijoux faisant tutoriel : comment utiliser de gros perles acryliques pour faire des bracelets de perles. Vous pouvez bricolage ce bracelet perlé fleuri couleur arc-en-ciel avec angle droit tissage point.Proviennent de matériaux http://www.p
Comment faire pour obtenir tous le site Web conception/codage des outils dont vous avez besoin - gratuitement !

Comment faire pour obtenir tous le site Web conception/codage des outils dont vous avez besoin - gratuitement !

Intéressé à apprendre à coder ou construire votre propre site Web mais n'avez pas envie de passer votre durement gagné en espèces sur les livres et logiciels ? Aujourd'hui de codage et de construction de site Web est si commun que vous pouvez trouver
Flasque arrière V2 tutoriel codage des graines

Flasque arrière V2 tutoriel codage des graines

Dans cette Intructable nous parler d'un problème courant dans les émissions, la méthode descendante de programmation et apprendre à contrôler la V2.0 de bouclier moteur Seeed pour l'Arduino Uno. Laisse ainsi passer directement à elle.Dans le secteur
Le danger des connexions électriques mou et leur fixation !

Le danger des connexions électriques mou et leur fixation !

Dans le monde de l'énergie électrique, il est important que toutes les connexions soient mis en toute sécurité. Il est obtenu d'être serré (pas si serrée que vous abîmer filetage des boulons/vis) afin d'éviter les contacts de haute résistance qui cré
RC de décodage des signaux en utilisant arduino

RC de décodage des signaux en utilisant arduino

#ThugLifeRobotHé les gars là-bas,Aujourd'hui je vais vous les gars montrer comment utiliser les contrôleurs de RC et décoder leurs signaux pour vos projetsComme beaucoup d'entre vous savent que nous pouvons directement utiliser servo-moteurs avec réc
Comment faire des connexions à Pier 9

Comment faire des connexions à Pier 9

Vous voulez rencontrer des gens dans le laboratoire d'électronique, mais n'ai aucune idée de quoi parler ? Faire des liens ! Interrogez-les sur un projet qui a échoué dans le domaine, les chances sont que c'est à cause d'une mauvaise connexion.Nous a
Leçon 4: Base Arduino PT. 2: Introduction au codage des

Leçon 4: Base Arduino PT. 2: Introduction au codage des

Bienvenue, apprenants désireux. Pour ceux qui découvrent cette série, s'il vous plaît voir mes leçons précédentes en base électrotechnique. Pour ceux qui ne sont pas nouveaux, se préparent à entrer dans le monde du codage, où vous pouvez manipuler le
Comment faire l’éolienne cloche qui pend des ornements avec perles

Comment faire l’éolienne cloche qui pend des ornements avec perles

Vous aimez Eolien bell ? Eolien bell est un ornement de belle pendaison pour porte et chambre à coucher. Projet de bricolage d'aujourd'hui, j'ai fait une cloche Eoliennes perle suspendus ornement. La partie difficile rend le talon, accrocher des bran
Magasin bon marché et facile des connexions Vac

Magasin bon marché et facile des connexions Vac

Je ne sais pas si quelqu'un d'autre a ce problème, mais je n'ai certainement : J'ai quatre outils disposant de ports de collection de poussière - une table à toupie, une ponceuse à courroie/à disque benchtop. une tronçonneuse (onglets) et une scie de
Soccer Ball abat-jour avec des connexions de Yin Yang

Soccer Ball abat-jour avec des connexions de Yin Yang

J'ai vu une photo d'un ballon de papier scintillement made comme cela.De ce que j'ai trouvé, cela a été rendu par Phillip Chapman-Bell. Si c'est incorrect s'il vous plaît laissez-moi savoir.La forme de ballon de football est faite d'hexagones et de p
Comment faire des ornements de perles en bois

Comment faire des ornements de perles en bois

Ok, alors voici un moyen super simple et facile de faire certains naturelle et rustique à la recherche d'ornements. Êtes-vous prêt pour cela ? Si vous clignotent vous risquez de manquer ce tutoriel parce qu'il est tout aussi simple que cela !Vous aur
Shunt de cavaliers pour la réalisation des connexions efficaces et sûrs

Shunt de cavaliers pour la réalisation des connexions efficaces et sûrs

savoir sur cavalier :Un cavalier est la brièveté d'un conducteur qui est utilisé pour contourner un circuit électrique. En particulier dans l'électronique, cavaliers servent à configurer les cartes de circuits imprimés, y compris les cartes mères. Ca
Cadeaux fête des mères-comment faire des feuilles perle perles pinces à cheveux pour les femmes

Cadeaux fête des mères-comment faire des feuilles perle perles pinces à cheveux pour les femmes

Vous cherchez des cadeaux de fête des mères ? Si oui, regardez ici ! Aujourd'hui, je vais partager vous un tutoriel Pandahall sur comment faire des pinces à cheveux perles feuille pour les femmes !Etape 1: Le matériel nécessaire pour la pince à cheve