Thread threads => Grundwissen
(50 answers)
Opened by RPerl at 2007-01-21 18:07
Allso ein wenig informationen wie man Werte an eine Funktion übergibt.
Nemen wir mal ein Funktion und nennen sie "test". An test übergeben wir Werte. Code (perl): (dl
)
&test($wert1,$wert2,$wert3,@array1); Die zu übergebenen Werte werden in "@_" deponiert und sind in der Funktion selber darüber erreichbar. bedenke aber, das bei "@array" nicht das array als Referenz sondern als Liste des Inhaltes übergeben wird. Selbisges Gilt auch für Hashes (siehe dazu die Hash/Array-Überführbarkeit). Wenn du allso eine Funktion "test" schreibst, so kannst du die übergeben Werte wie folgt abrufen: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 sub test { my ($w1,$w2,$w3,@a1)=@_; # oder: my $w1=shift(@_); my $w2=shift(@_); my $w3=shift(@_); my @a1=@_; # oder: my $w1=$_[0]; my $w2=$_[1]; my $w3=$_[2]; my @a1=@_[3..$#_]; } Mal als vollständiges Script: 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; sub test { my ($wert1,$wert2,$array_ref,@array)=@_; print "Ich bin $wert1\n"; print "Das ist $wert2\n"; print 'Ich bin '.join(', ',@$array_ref)."\n"; print 'Ich bin nicht '.join(', ',@array)."\n"; } my @array_a=('schlau', 'geschickt', 'gutmuetig'); my @array_b=('gross', 'schnell', 'beinhart'); &test('Programmierer', 'eine Funktion', \@array_a, @array_b); Sowas sollte aber in jeder Einführung zu Perl zu finden sein. |