[Cologne-pm] 2 hashreferenzen von einer subrutine bearbeiten
Cem Sakaryali
cem.sakaryali at easi.de
Thu Sep 22 13:03:54 PDT 2005
Hallo Jens,
ich bekomme den Inhalt des Hashes nicht geprintet
wenn ich 2 hashreferenzen von der sub bekomme.
Auch durch Deine Lösung konnte ich den Inhalt nicht
printen.
Gruss
Cem
Ich habe mal ein beispiel gemacht:
sub CreateHash1 {
$hash1{aa}{bb}=cc;
$hash2{dd}{ee}=ff;
return (%hash1,%hash2);
}
sub CreateHash2 {
$hash1{aa}{bb}=cc;
return (%hash1);
}
#####################################################funktioniert nicht
($parameter,$include) = CreateHash1 ($ARGV[0]);
%hash = %$parameter;
foreach my $i (keys %hash) {
print "Runname: $i\n";
foreach my $ii (sort keys %{$hash{$i}}) {
print "$ii $hash{$i}{$ii}\n";
}
}
########################################################funktioniert
(%hash) = CreateHash2 ($ARGV[0]);
foreach my $i (keys %hash) {
print "Runname: $i\n";
foreach my $ii (sort keys %{$hash{$i}}) {
print "$ii $hash{$i}{$ii}\n";
}
}
On Thu, September 22, 2005 21:25, Jens Gassmann wrote:
> Hi,
>
> mir ist noch nicht ganz klar was nun nicht läuft?! Wichtig ist das du
> von der Subroutine immer nur Hash-Referenzen zurück bekommst.
>
>
>
> > %hash = %$parameter;
> >
> > foreach my $i (keys %hash) {
> > print "Runname: $i\n";
> > foreach my $ii (sort keys %{$hash{$i}}) {
> > print "$ii $hash{$i}{$ii}\n";
> > }
> > }
> >
>
> kannst du auch so schreiben
>
> foreach my $i (keys %$parameter) {
>
> print "Runname: $i\n";
>
> foreach my $ii (sort keys %{$parameter->{$i}}) {
>
> print "$ii $parameter->{$i}{$ii}\n";
> }
> }
>
> Grüsse
> jens
>
> Cem Sakaryali wrote:
>> Hallo alle,
>>
>> ich versuche gerade 2 hash referenzen die von einer
>> subrutine kommen zu bearbeiten aber es funtioniert leider
>> nicht. Dabei handelt es sich um 2dim. hashes die ich in einer
>> sub erzeuge.
>>
>>
>> # aufruf der sub funktion. Zurück kommen 2 hashes
>> ($parameter,$include) = ReadMatrix ($ARGV[0]);
>>
>> %hash = %$parameter;
>>
>> foreach my $i (keys %hash) {
>> print "Runname: $i\n";
>> foreach my $ii (sort keys %{$hash{$i}}) {
>> print "$ii $hash{$i}{$ii}\n";
>> }
>> }
>>
>>
>> Die Schleife von oben funktioniert aber wenn ich nur ein hash
>> zurückgebe.
>>
>> (%hash) = ReadMatrix ($ARGV[0]);
>>
>> foreach my $i (keys %hash) {
>> print "Runname: $i\n";
>> foreach my $ii (sort keys %{$hash{$i}}) {
>> print "$ii $hash{$i}{$ii}\n";
>> }
>> }
>>
>>
>> Hat einer von euch eine Idee, was ich falsch mache?
>>
>> Gruss
>> Cem
>>
>> _______________________________________________
>> Cologne-pm mailing list
>> Cologne-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/cologne-pm
>
> _______________________________________________
> Cologne-pm mailing list
> Cologne-pm at pm.org
> http://mail.pm.org/mailman/listinfo/cologne-pm
>
More information about the Cologne-pm
mailing list