|< 1 2 >| | 13 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$a = 2;
@x = (1..5);
@y = scale_ary2($a, @x);
print "\@x = @x \n";
print "\@y = @y \n";
sub scale_ary2 {
$scale = shift; # 2
for (@_) { # @_ = 1 2 3 4 5
$_ *= $scale;
}
return @_; # wohin wird das neue @_ hingeliefert?
}
QuoteAlle übergebenen Argumente befinden sich im Array @_ . Bei zwei Argumenten wären diese also in $_[0] und $_[1] gespeichert. @_ ist ein lokales Array, allerdings sind die Elemente Aliase für die originalen Parameter. D.h., wenn das Element $_[0] verändert wird, wird das entsprechende Original auch verändert (oder wenn es nicht veränderbar ist, tritt ein Fehler auf).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use strict;
use warnings;
my $a = 2;
my @x = ( 1 .. 5 );
my @y = @x;
scale_ary2($a, @y);
print "\@x = @x \n";
print "\@y = @y \n";
sub scale_ary2 {
my $scale = shift;
$_ *= $scale for @_;
1;
}
|< 1 2 >| | 13 Einträge, 2 Seiten |