Hallo miteinander,
ich schreibe ein Script welches div. eigenschaften 2er Datenbanken vergleicht.
folgendes steht in einer funktion, $type ist entweder local oder remote.
in einer while schleife, welche einen mysql show table status befehl zeilenweise abarbeitet habe ich folgendes problem:
@{$table_rows{$type}}[$table_counter{$type}] = $rows;
$table_counter{$type} wird am ende der while schleife per ++ hochgezählt.
das ganze script funktioniert auch wunderbar, allerdings bekomme ich wo immer ich werte in diese ja doch recht komplexe datenstruktur einfüge die fehlermeldung
"Use of uninitialized value in array slice at"
use strict ist aktiv, initialisiert habe ich folgendes:
my %table_rows;
my %table_counter;
global, sowie den $type innerhalb der funktion.
was genau übersehe ich, an welcher stelle fehlt die initialisierung?
dank & grüße, Moritz
User since
2003-08-04
14371
Artikel
ModeratorIn
Lass Dir doch mal alle Werte ausgeben, um zu sehen *welche* Variable da nicht initialisiert ist.
User since
2003-08-04
14371
Artikel
ModeratorIn
Warum machst Du eigentlich nicht
push @{ $table_rows{$type} }, $rows? Da Du ja inkrementierst, gibt es wohl keine "Lücken" im Array. Somit dürfte
push die bessere Wahl sein. Und Du sparst Dir den zusätzlichen Hash.