Thread Hash by value als Sub-Parameter übergeben (18 answers)
Opened by KurtZ at 2008-02-06 19:55

KurtZ
 2008-02-06 19:55
#105654 #105654
User since
2007-12-13
411 Artikel
BenutzerIn
[default_avatar]
Hallo

übergibt man mehrere Hashes an ein sub empfiehlt es sich Refs zu übergeben. Wenn man aber im sub eine my Variable nicht ständig deferenzieren möchte, schreibt man letztendlich sowas wie


Code (perl): (dl )
1
2
3
4
5
sub routine {
my ($hash_ref1,$hash_ref2)=@_;
my %hash1=%{$hash_ref1};       #umkopieren
$hash1{key}="wert";                    #wirkt sich nicht auf ursprüngliches Hash aus
}  


$hash_ref1 brauch ich nur einmal ... geht das auch direkter???

Beim rumprobieren bin ich nur auf häßliche Sachen wie
Code (perl): (dl )
1
2
3
my %hash1=%{$_[0]};
# oder
my %hash1=%{scalar shift};

gekommen.

Oder Typeglobbing, wo ich aber Aliases erzeuge wo sich Werteveränderungen durchschlagen. Zudem sind die Variablen global statt privat!
Code (perl): (dl )
(*hash1,*hash2)=@_;


Weiß jmd was eleganteres? (Ich hab ja wenig Hoffnung in Perl5 ...aber wer weiß...)

Gruß
Kurt
TMTOWTDYOG (there's more than one way to dig your own grave)

View full thread Hash by value als Sub-Parameter übergeben