Heylo encore,Perl - Comment accéder et archiver un élément qui se trouve dans un autre tableau
J'ai essayé de rendre mon programme plus facile à maintenir. J'ai un tableau que je déclare:
my @pizza = ($p1 = "Pizza One", $p2 = "Pizza Two");
Je avance puis aller mettre ce tableau de @Pizza dans un autre tableau, comme ceci:
my @food = (\@pizza);
Lorsque je tente d'accéder soit p1 $ ou p2 $ via la propriété @food, je reçois une valeur renvoyée comme "Array {0x8001}" qui semble être une référence de mémoire. Qu'est-ce que j'ai essayé était ce:
$test = ${$food[$pizza[$p1]]};
Quel est le moyen le plus rapide d'accéder à cela? Je cherche à NE PAS utiliser d'index afin de faciliter la lisibilité du programme. pourriez-vous me pointer dans la bonne direction?
Cordialement,
Voilà ce que je suis en train de faire:
J'ai plusieurs bases de données (pour l'amour de pourparlers ceci est un exemple)
Base de données Un
Table One (D1T1) | Colonne Un | Colonne deux | Colonne trois | Colonne 4
Tableau deux (D1T2) | Colonne Un | Colonne deux | Troisième colonne
Base de données deux
Tableau un (D2T1) | Colonne Un | Colonne deux | Colonne trois
Tableau deux (D2T2) | Colonne Un | Colonne deux | Colonne trois
Tableau trois (D2T2) | Colonne Un | Colonne deux | Colonne trois
Entre ces deux bases de données il y a des informations qui sont relatives à des enregistrements particuliers à travers les deux. Ce que j'essaye de faire est de créer un tableau (chaque tableau représentera une base de données) et insérer des variables (chaque variable représentera un tableau.field dans la source de données) Une fois cela fait, je crée un tableau pour contenir tous les tableaux. (Ceux qui représentent les db) car ce tableau représentera une seule entrée à travers les deux bases de données sur lesquelles je peux alors agir. Exemple:
@ D1 = (t1.col1, t1.col4, t2.col1); @ D2 = (t1.col1, t2.col1, t3.col2, t3.col3);
@rec = (\ @ D1, \ @ D2);
Si je veux savoir ce qui se trouvait dans la base de données 2 -> Tableau 2 -> Colonne 4, quelle serait la déclaration? Dois-je utiliser des hachages à la place? J'ai une exigence pour ce tableau bidimensionnel/hash.
Toute aide est très appréciée.
MC
est-il une raison que vous utilisez un tableau ici au lieu d'un hachage? Ce que vous faites dans la première ligne crée un tableau: @pizza = ("Pizza One", "Pizza Two") et deux variables $ p1 = "Pizza One", $ p2 = "Pizza Two". C'est plus ou moins où je te perds. Essayez-vous de trouver l'index de @pizza qui a la valeur $ p1? –
Peut-être que ce serait mieux si vous avez arrêté et décrit la structure de données que vous essayez de construire et comment vous voulez y accéder. Quelque chose comme: Je veux une liste d'aliments ventilés par catégories telles que la pizza, et je veux que ces catégories contiennent des recettes individuelles accessibles par nom de recette (comme "Pizza hawaïenne"). Une fois que nous savons ce que vous faites avec les données, nous serons en mesure de vous aider. –
Même si vous ne voulez pas expliquer votre problème à partir des principes de base et demander des solutions suggérées, au moins expliquer ce que vous pensez que vous faites avec le code que vous avez posté. Le my @pizza = ($ p1 = "Pizza One", $ p2 = "Pizza Two") a juste l'air bizarre et alors comme ce n'est pas évident ce que vous essayez de faire, il est difficile de vous orienter dans la bonne direction. –