Thread [Tipp] Parameter in Prozeduren: sicher auslesen
(7 answers)
Opened by GwenDragon at 2006-02-22 15:30
Einzelne Parameter übernehme ich mit
, mehrere kopiere ich mit
Code: (dl
)
my ($par1, $par2, @par3 ) = @_; Jetzt sagt perldoc perlsub zu Parametern bei Prozeduren: QuoteDas bedeutet, dass jede Veränderung eines Elements von @_ auch die Variable ändert, die als Parameter übergeben wurde. Code: (dl
)
1 #!/usr/local/bin/perl Damit werden die Parameter nicht wie bei anderen Sprachen als Kopien von Werte in einem Stack, sondern als Referenzen in einem Stack übergeben! Eine ziemliche Falle für Anfänger. Und für Umsteiger von anderen Sprachen. Und für Leute, die Code umschreiben müssen. Und für übernächtigte Leute ;) Tipp 1: Mit dem Kopieren von @_ bzw. shift bin ich auf der sicheren Seite! Tipp 2: Mal den eigenen Code auf Konstrukte wie @_= oder $_[ ...] = überprüfen! PS: gehört das vielleicht eher ins Wiki?\n\n <!--EDIT|GwenDragon|1140615399--> |