perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 19
Click for quality!




11.02.2012 / 23:17

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragDe-Referenzieren
Seitenanfang
Um mein Problem zu verdeutlichen, habe ich ein vereinfachtes Script geschrieben, welches in etwa die selbe Situation produziert:


#!/usr/bin/perl
use CGI::Carp qw(fatalsToBrowser);
use Data::Dumper;
print "Content-Type: text/plain\n\n";

@test1 = ("wert11","wert12");
@test2 = ("wert21","wert22");
@refarray = (\@test1,\@test2);

for($a=1 ; $a<=2 ; $a++){
my @testarray = @refarray;
print "Durchgang $a:\n";
for($i=0 ; $i<@testarray ; $i++){
push(@{$testarray[$i]},"add".$a.$i);
};
print Dumper(\@testarray)."\n\n";
};
print "Original-Array:\n";
print Dumper(\@refarray);

Ausgabe des Scriptes :


Durchgang 1:
$VAR1 = [
[
'wert11',
'wert12',
'add10'
],
[
'wert21',
'wert22',
'add11'
]
];

Durchgang 2:
$VAR1 = [
[
'wert11',
'wert12',
'add10',
'add20'
],
[
'wert21',
'wert22',
'add11',
'add21'
]
];

Original-Array:
$VAR1 = [
[
'wert11',
'wert12',
'add10',
'add20'
],
[
'wert21',
'wert22',
'add11',
'add21'
]
];

gewünschte Ausgabe bei Durchlauf 2 sollte jedoch eigentlich folgendes kommen :

$VAR1 = [
[
'wert11',
'wert12',
'add20'
],
[
'wert21',
'wert22',
'add21'
]
];

ich kann nicht vermeiden Referenzen auf Arrays in einem Array zusammen zu stellen (das Modul HtmL::Template ist auf diesen Aufbau angewiesen)

Ich möchte jedoch im Laufe einer Schleife dem referenz-array (@refarray) weitere Werte hinzufügen. Jedoch soll in jedem Durchlauf der Schleife $a wieder die ursprüngliche Struktur des Referenzarrays verwendet werden.
Ich hatte gehofft , dass durch die Zuweisung von @refarray auf @testarray innerhalb der Schleife jedesmal das original verwendet wird. Jedoch musste ich feststellen, dass durch die verwendeten Referenzen jedesmal das original-Array manipuliert wird. (zu erkennen bei der Script-Ausgabe am letzten Dump des @refarray)

Datum: 08.02.2008-16:49

-






-
-