Ein Wert eines Hashes muss ein skalarer wert sein, also String, Zeichenkette oder eben auch Referenz auf irgendwas.
Ich wuerde da einfach eine Arrayref speichern:
$adressen{Peter} = \@daten;
if (ref($adressen{Peter} eq 'ARRAY') {
foreach (@{ $adressen{Peter} } ) {
print "$_\n";
}
} # if
else { # nur ein normaler string
print $adressen{Peter}, "\n";
} # else
wenn du z.B. die zweite adresse aendern willst, dann einfach:
$adressen{Peter}->[1] = $neueAdresse;
Wenn du da unbedingt einen string speichern willst, dann musst du die einzelnen adressen durch irgendein zeichen trennen; \n wuerde sich da vielleicht anbieten. Aber dann musst du es immer mit @adressen = split(/\n/, $adressen{Peter}) zerlegen bzw. mit $adressen{Peter} = join("\n", @adressen) wieder speichern... da wuerde ich die Loesung mit den Arrayreferenzen bevorzugen