Thread array reference+2
(13 answers)
Opened by Graf Herschel at 2015-12-28 14:36
Arrays in Perl sind zum einen dynamisch nicht statisch. Zum anderen bestehen sie nicht wie in C einfach aus einem Binärstring mit einem eindeutigen Trenner. Perl Arrays müssen nämlich auch mit "\0" in Strings und mit Refenzen klar kommen. Darum besteht ein Array in Perl aus einer verketteten Liste aus structs. Jedes struct enthält eine Referenz auf den eigentlichen Datensatz, Das macht z.B. Baumstrukturen möglich und vereinfacht sort, shift, push, slice usw.
Wenn dir wirklich so viel so viel an statischen Arrays liegt, dann musst du es dir selber mit Inline-C Implementieren, oder Data::Alias verwenden: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; use Data::Alias; sub foo($) { my $array = shift; $array->[0]='3'; $array->[1]='4'; unshift(@$array,'<<<'); push(@$array,'>>>'); print Dumper($array); } my @array = qw(eins zwei drei vier); print Dumper(\@array); foo alias [ @array[2 .. $#array] ] ; print Dumper(\@array); Last edited: 2015-12-29 11:50:01 +0100 (CET) |