Thread Verständnisfrage Datentypen (Array/Hash/literale "Listen") (29 answers)
Opened by tschloss at 2008-11-29 13:20

renee
 2008-11-29 16:35
#116710 #116710
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
1) jein: Man kann zwar so etwas machen

Code (perl): (dl )
1
2
3
my @array = (1..10);
my %hash = @array;
@array = %hash;


Aber da Hashes keine bestimmte Reihenfolge hat, ist nicht garantiert (bzw. wird in den wenigsten Fällen so sein) dass das zweite @array die Elemente in der gleichen Reihenfolge hat wie das erste @array.

Hashes haben außerdem immer eine gerade Zahl an Einträgen (da immer Schlüssel und Wert). Also kann es passieren, dass durch das "hin- und herzuweisen" undef-Werte in das Array kommen. (einfach mal in obigem Beispiel die "10" durch eine "9" ersetzen.)

Weiteres Problem:
Code (perl): (dl )
1
2
3
my @array = (CGI->new, 1);
my %hash = @array;
@array = %hash;


Im Array ist das erste Element ein Objekt. Durch die Umwandlung in einen Hash wird jedes ungerade Element stringifiziert, da Schlüssel in einem Hash immer Strings sind. Also wirst Du beim zweiten @array so etwas als erstes Element haben: CGI=HASH(0x.....).
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Verständnisfrage Datentypen (Array/Hash/literale "Listen")