Zuweisung eines Teils eines arrays
Bernd
- perl
Hallo,
wenn ich einen array @arr habe von z.B. 20 Elementen,
so kann ich ja zuweisen
($f0, $f1, $f2, $f3, ,$f19) = @arr;
Kann ich auch nur fortlaufende Teile daraus zuweisen,
z.B. ($f7, ..... ,$f12) = Element 3 bis 8 aus dem array,
ohne dass ich die Zuweisungen einzeln vornehmen muss?
Kann ich auch nur fortlaufende Teile daraus zuweisen,
z.B. ($f7, ..... ,$f12) = Element 3 bis 8 aus dem array,
ohne dass ich die Zuweisungen einzeln vornehmen muss?
Was du suchst ist ein slice
@arr[2..7] = qw(a b c d e f g h);
Struppi.
gudn tach!
Kann ich auch nur fortlaufende Teile daraus zuweisen,
z.B. ($f7, ..... ,$f12) = Element 3 bis 8 aus dem array,
ohne dass ich die Zuweisungen einzeln vornehmen muss?Was du suchst ist ein slice
@arr[2..7] = qw(a b c d e f g h);
obgleich Bernd es vermutlich eher andersherum wissen wollte, hilft dein tipp weiter.
trotzdem noch mal:
($f7, ..... ,$f12) = @arr[3..8];
oder falls @f auch ein array sein sollte:
@f[7..12] = @arr[3..8];
perl ist geil!
prost
seth
($f7, ..... ,$f12) = @arr[3..8];
oder falls @f auch ein array sein sollte:
@f[7..12] = @arr[3..8];
perl ist geil!
Genau. Ich verstehe auch nicht, wie Leute auf die Idee kommen man könnte es schlecht lesen oder so ein Quatsch. Kann es für sowas eine einleuchtendere Schreibweise geben?
Struppi.
gudn tach!
@f[7..12] = @arr[3..8];
perl ist geil!
Genau. Ich verstehe auch nicht, wie Leute auf die Idee kommen man könnte es schlecht lesen oder so ein Quatsch. Kann es für sowas eine einleuchtendere Schreibweise geben?
vermutlich nicht. aber immerhin geht's noch kuerzer; in matlab, was allerdings eben auf den umgang mit vektoren und matrix spezialisiert ist:
f(7:12) = arr(3:8);
(dafuer hat matlab keinen huebschen inkrementierungsuperator und ca. 50000 weitere eigenschaften, die es meiner ansicht nach stinken lassen. an perl kommt einfach nichts heran.)
prost
seth