Re: Problem mit Variablenzuweisung

Re: Problem mit Variablenzuweisung

am 27.08.2007 14:26:54 von Martin Duske

"J. Strübig" wrote:

> Martin Duske schrieb:
>> Hallo,
>> ich hab möchte Daten aus zwei Dateien lesen und die Daten dann
>> vergleichen. Das einlesen funktioniert alles bestens, allerdings wird
>> beim Einlesen der zweiten Datei der Inhalt der ersten gelöscht und beide
>> Variablen haben den selben Inhalt. Ich meine es ist ein Problem in
>> Richtung Call-by-Reference/Call-by-Value Problem, aber ich habe im Moment
>> keine Ahnung, wie ich es lösen kann.
>
> Kann ich mit deinem Code nicht nachvollziehen
> Beide Arrays haben unterschiedliche Werte, wenn du unterschiedliche
> Rückgabewerte hast.
>
> Was hat die Frage mit CGI zu tun?
> Daher mal ein follow-up
>
> Struppi.

Ok, mit CGI hat es recht wenig zu tun, da hab ich wohl nicht aufgepasst und
in der falschen Gruppe auf neues Thema geklickt...

Die Rückgabewerte unterscheiden sich, wenn ich den ersten Satz Daten
einlese, und ich @Umgebung_alt ausgebe, dann bekomme ich:
44| 4| | 54| 115|
64| | 3| 48| 23|
4| 10| 32| | |
10| | 5| 20| 38|
| 36| 16| 48| |
Dann lese ich den zeiten Satz ein und der Inhalt von @Umgebung_neu ist dann:
64| 4| | 55| 153|
80| | 24| 66| 27|
4| 10| 74| | |
10| | 5| 20| 38|
| 49| 18| 48| |
Allerdings hat sich jetzt auch der Inhalt von @Umgebung_alt auf
64| 4| | 55| 153|
80| | 24| 66| 27|
4| 10| 74| | |
10| | 5| 20| 38|
| 49| 18| 48| |
geändert. Und das verstehe ich überhaupt nicht.

MfG

Re: Problem mit Variablenzuweisung

am 27.08.2007 14:42:09 von struebig

Martin Duske schrieb:
> "J. Strübig" wrote:
> Die Rückgabewerte unterscheiden sich, wenn ich den ersten Satz Daten
> einlese, und ich @Umgebung_alt ausgebe, dann bekomme ich:
> 44| 4| | 54| 115|
> 64| | 3| 48| 23|
> 4| 10| 32| | |
> 10| | 5| 20| 38|
> | 36| 16| 48| |
> Dann lese ich den zeiten Satz ein und der Inhalt von @Umgebung_neu ist dann:
> 64| 4| | 55| 153|
> 80| | 24| 66| 27|
> 4| 10| 74| | |
> 10| | 5| 20| 38|
> | 49| 18| 48| |
> Allerdings hat sich jetzt auch der Inhalt von @Umgebung_alt auf
> 64| 4| | 55| 153|
> 80| | 24| 66| 27|
> 4| 10| 74| | |
> 10| | 5| 20| 38|
> | 49| 18| 48| |
> geändert. Und das verstehe ich überhaupt nicht.

Ich auch nicht, da es bei mir so ist.

Ich hab deinen code mal Lauffähig gemacht:
#!/usr/bin/perl -w
use strict;
use Data::Dumper;

my @Umgebung_alt = Karte_einlesen(0);
my @Umgebung_neu = Karte_einlesen(1);
print "alt: ", Dumper(\@Umgebung_alt);
print "\n\nneu: ", Dumper(\@Umgebung_neu);

sub Karte_einlesen {
my($string)=@_;
my $datei = Aufforderung_Benutzereingabe($string);
my @Umgebung=Daten_filtern($datei);
return @Umgebung;
}
sub Daten_filtern
{
my $inhalt = shift;
return split /\n/, $inhalt;
}
sub Aufforderung_Benutzereingabe
{
my $file = shift;
return <<"TEXT" if $file;
Beispiel 1.
Text
TEXT
return < Beispiel 2.
Text
TEXT
}

Struppi.

Re: Problem mit Variablenzuweisung

am 27.08.2007 15:52:08 von Martin Duske

Vielen Dank,
Mit einem simplen "use strict;" und denn dann notwendigen Ergänzungen
funktioniert es jetzt.