Thread Arrays (11 answers)
Opened by Gast at 2005-08-08 13:07

Ronnie
 2005-08-08 13:15
#57021 #57021
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Du mischst wild Arrays und Hashes (assoziative Arrays), das kann so nicht gehen. Das pop entnimmt deinem Buffer nur EIN! Element, für eine Zuweisung an ein Hash brauchst du aber mindestens zwei (oder vielfache davon) Elemente.

Das beste was du machen könntest wäre:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/perl

use strict;
use warnings;

use Data::Dumper;

my %source;
my %dest;
my @buffer;

$source{key1} = "value1";
$source{key2} = "value2";
push( @buffer, %source );
$source{key1} = "value3";
$source{key2} = "value4";
push( @buffer, %source );

#(...)

print Dumper \@buffer;

%dest = splice @buffer, 0, 2;
print Dumper \%dest;

wobei du das Problem hast, wenn du das Hash in ein Array pushst du nicht erwarten kannst, das es beim pop in der selben Reihenfolge wieder erscheint, da die interne Reihenfolge des Hashs nicht bestimmbar ist. Wahrscheinlich ist eine zusammengesetzte Datenstruktur sinnvoller.\n\n

<!--EDIT|Ronnie|1123492943-->

View full thread Arrays