Calocybe: Array Referenz in Perl

Beitrag lesen

Hi!

%myhash;
while(irgendwas)
{
#... Datenbankabfrage
my(@array);
#... füllen des Arrays
...
#... ermitteln des richtigen Keys
...
$myhash{$key} = [ @array ];
}

Mein Problem ist jetzt, daß ich nicht weiß, ob nach dem "my" trotzdem noch die alte Referenz gilt oder dort ein neuer Speicherbereich reserviert wird.

Weiss ich auf Anhieb auch nicht, aber mit [ @array ] legst Du ja in jedem Durchlauf ein neues anonymes Array an, in welches Du dann @array rein-aufloest (aufloesen im Sinne wie Salz in Wasser). Du musst dann nur noch @array=() ausfuehren, um das Array wieder zu leeren.

Alternative:
my $array;
$array = [ ];       # neues leeres anonymes Array anlegen

... fuellen

$myhash{$key} = $array;

In C++ würde ich jedesmal per "new" ein neues Array anlegen und den Pointer dann speichern, aber wie ist das hier in Perl ?

Dieses $array = [ ] ist mit dem new vergleichbar.

So long

--
Manchmal habe ich den verdacht, dass meine 'facility-managerin' (aka:putzfrau) mehr ahnung von 'usability' hat als all ihr super-hippen 'web-designer'.
    -- http://www.heise.de/newsticker/foren/go.shtml?msg_id=520197&forum_id=10861&read=1