Thread Arrayreferenz in Hashreferenz für Subroutine (9 answers)
Opened by Pauline25 at 2011-09-09 16:38

topeg
 2011-09-12 20:31
#152322 #152322
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Ich sehe keinen Grund warum das nicht funktionieren sollte:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!usr/bin/perl
use strict;
use warnings;

print "here I start \n";
do "Datei_mit_Subroutine.pl";

my %hash = %{dateilesen()};

print "here is the return value of dateilesen:\n";

foreach my $key (sort {$hash{$a}->[0] <=> $hash{$b}->[0]} keys(%hash) )
{
  print "$key: ";
  print join(' ', @{$hash{$key}});
  print "\n";
}


oder:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!usr/bin/perl
use strict;
use warnings;

print "here I start \n";
do "Datei_mit_Subroutine.pl";

my $hash = dateilesen();

print "here is the return value of dateilesen:\n";

foreach my $key (sort {$hash->{$a}->[0] <=> $hash->{$b}->[0]} keys(%$hash) )
{
  print "$key: ";
  print join(' ', @{$hash->{$key}});
  print "\n";
}


Ich habe es gerade ausprobiert. Mit

Datei_mit_Subroutine.pl:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!usr/bin/perl
use strict;
use warnings;


sub dateilesen
{
  my %hash;
  $hash{a}=[0,'TEST1'];
  $hash{b}=[1,'TEST2'];
  $hash{c}=[2,'TEST3'];
  $hash{d}=[3,'TEST4'];
  return \%hash;
}


Ausgabe:
Code: (dl )
1
2
3
4
5
6
here I start 
here is the return value of dateilesen:
a: 0 TEST1
b: 1 TEST2
c: 2 TEST3
d: 3 TEST4

View full thread Arrayreferenz in Hashreferenz für Subroutine