1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl -w
sub bla1 {
my ($a) = @_;
print "$a\n";
}
sub bla2 {
my @a = @_;
print "@a\n";
}
sub bla3 {
my $a = @_;
print "$a\n";
}
bla1(4,5,6); # 4 : erstes Element = @_[0]
bla2(4,5,6); # 4 5 6
bla3(4,5,6); # 3 : Anz. der Elemente
2013-11-05T23:33:46 pqist eigentlich nur nötig bei:
my ($var) = @_;
weil man dort mit den klammern den listenkontext erzwingt. ansonsten würde in $var nur die anzahl der elemente in @_ landen.
bei deinem beispiel sind die klammern unnötig und vermutlich nur aus gewohnheit dort gelandet.
my ($a,$b) = (shift, shift)
2013-11-06T10:00:56 clmsDer andere Fall, bei dem man die Klammern braucht -
wenn man mehrere Variablen auf einmal deklarieren und zuweisen will!
Code (perl): (dl )my ($a,$b) = (shift, shift)
2013-11-06T19:54:26 Raubtier2013-11-06T10:00:56 clmsDer andere Fall, bei dem man die Klammern braucht -
wenn man mehrere Variablen auf einmal deklarieren und zuweisen will!
Code (perl): (dl )my ($a,$b) = (shift, shift)
Hilfe! Bei Code, der in ein und demselben Kommando 2x dasselbe Array ändert, bekomme ich Angst! Ich würde dringend davon abraten, sich sowas anzugewöhnen.
my ($b, undef, $b) = @array;
1 2 3 4 5 6 7
# Beispiel 1. my ($x) = /(regex)/; # (Ohne Listenkontext würde der Match etwas ganz anderes zurückgeben) # Beispiel 2. # in meiner perlscriptsammlung gefunden, zum parsen der ausgabe von mplayer -identify: my ($width) = map { /^ID_VIDEO_WIDTH=(\d+)$/ } @identify;