Thread mehrere hashes übergeben an Sub (6 answers)
Opened by jan99 at 2011-05-19 15:40

MatthiasW
 2011-05-19 15:50
#148821 #148821
User since
2008-01-27
367 Artikel
BenutzerIn
[default_avatar]
Du übergibst sie als Referenzen (richtig) versuchst sie aber anders entgegenzunehmen. In der Routine musst du sie erst dereferenzieren, oder mit den Referenzen weiter machen:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
sub ReportErstellen 
{
  my $file = shift;
  my $title = shift;
  my $osm_data = shift;
  my %poi_id_ref = %{shift};
  my %poi_name_ref = %{shift};
  my %conf_ref = %{shift};

#oder:
  my $poi_id_ref = shift;
  $poi_id_ref->{key} = value; # hier dereferenziert der -> Operator

Bei ersterem werden die Hashes kopiert, Änderungen gelten also nur innerhalb der Routine, bei letzterem nicht.

MfG
perl -E'*==*",s;;%ENV=~m,..$,,$&+42;e,$==f;$"++for+ab..an;@"=qw,u t,,print+chr;sub f{split}say"@{=} me"'

View full thread mehrere hashes übergeben an Sub