4 Einträge, 1 Seite |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
for $x (4..7) {
for $y (0..2) {
$AoA[$x][$y] = func($x, $y) # was wird übergeben
}
}
$x = "Perl";
$y = "ist spitze";
foreach (4..7) {
$AoA[$_][1] = func1($x, $y); # was wird übergeben
}
push @{$AoA[6]}, "na","klar";
for $i (0.."$#AoA") {
for (0.."$#{$AoA[$i]}") {
print "$i,$_: $AoA[$i][$_] "; # was passiert in den
} # beiden for-Schleifen
print "\n";
}
print "Wert: $AoA[6][4]\n";
sub func {
(shift)*(shift) # was passiert in der Funktion
}
sub func1{
shift;
$_[0]; # was passsiert in der Funktion
}
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl
use Data::Dumper;
for $x (4..7) {
for $y (0..2) {
$AoA[$x][$y] = $x * $y;
}
}
print Dumper $AoA;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# die ersten 4 Zeilen bleiben frei ($x fängt erst bei Index 4 an, gehe bis Zeil 8
for $x (4..7) {
# für die ersten drei Spalten (der entsprechenden Zeile)
for $y (0..2) {
# schreibe in die Zelle das Ergebnis von func
$AoA[$x][$y] = func($x, $y)
}
}
$x = "Perl";
$y = "ist spitze";
# für jede Zeile 5 - 8: schreibe in Zelle 2 das Ergebnis von func1
foreach (4..7) {
$AoA[$_][1] = func1($x, $y);
}
# füge an Zeile 7 noch "na" und "klar" an (sind also 2 weitere Zellen)
push @{$AoA[6]}, "na","klar";
# iteriere (laufe) über jedes Element (Zeile)
for $i (0.."$#AoA") {
# iteriere über jedes Element des Anonymen Arrays (Spalte)
for (0.."$#{$AoA[$i]}") {
# gebe das Element (Zelle) aus
print "$i,$_: $AoA[$i][$_] ";
}
print "\n";
}
# gebe den Wert der 7.Zeile und 5. Spalte wieder (G6)
print "Wert: $AoA[6][4]\n";
# hier wird das Produkt der beiden Parameter zurückgegeben, obwohl
# kein explizites return angegeben ist. Ist ein return nicht explizit vorhanden,
# wird der Wert des zuletzt evaluierten Ausdrucks zurückgegeben.
# Die Parameter stehen in dem Array @_ . Das shift holt sich den ersten Wert
# aus dem Array, das angegeben ist (shift(@array)), oder - wenn nix angegeben
# ist aus @_
# Das Ergebnis wird in $_ gespeichert, weil keine Variable explizit angegeben ist
sub func {
(shift)*(shift);
}
# hier wird automatisch der zweite Parameter wieder zurückgegeben,
# obwohl kein explizites return angegeben ist.
sub func1{
shift;
$_[0];
}
4 Einträge, 1 Seite |