2017-09-16 1 views
0

Ich versuche, einen Hash-Array zu erstellen. Wie kann ich auf das gesamte Array zugreifen/drucken? Hier ist der Code:Hash-Array in Perl

my %data;  
my @row = ("My", "Name", "is", "Anthony", "Gonzalves"); 
print "@row"; 
$data{'First'} = \@row; 
print "@data{'First'}"; 

Die Ausgabe des obigen Codes ist: mein Name ist Anthony GonzalvesARRAY (0x7fa1a5831dc8).

+0

'$ data {'First'}' ist ein re ferenz zu einem Array. Sie wollen "drucken" @ {$ data {'First'}} ";' – ikegami

+3

Arbeiten Sie durch Tutorial [perlreftut] (https://perldoc.perl.org/perlreftut.html) und Kochbuch [perldsc] (https: // perldoc.perl.org/perldsc.html) – zdim

Antwort

5

In Ihrem Code ist $data {First} ein Referenz zu einem Array. Um auf die Elemente zuzugreifen (alle als Liste), würden Sie es mit @{} umschreiben. Also:

foreach my $element (@{$data {First}}) { 
    print $element; 
} 

Oder, kürzer und Drucken jedes Element in einer eigenen Zeile:

use 5.010; 
say for @{$data {First}}; 
+0

Willkommen bei Stack Overflow! Es ist gut, eine andere ältere Community-Person hier zu haben :) – simbabque

0

Sie sollten @{} verwenden, um eine ref eines Arrays zuzugreifen:

%HoA=(
    flintstones =>["fred","barney"], 
); 

$HoA{teletubbies}=["tinky winky","dipsy","laa-laa","po"]; 

for $family (keys %HoA){ 
    print "$family: @{$HoA{$family}}\n"; 
} 

Der Ausgang ist:

simpsons: homer Marge bart 
teletubbies: tinky winky dipsy laa-laa po