Sat, 01 May 2004 at 12:44 GMT Michael wrote
> Use of uninitialized value in concatenation (.) or string at ./script.pl
> line 73.
>
> Jeg får ovensteånde fejl ud på terminalen i forbindelse med med hashes
>
> jeg har f.eks.
>
> $Tmp{ $ID }{ 'foo' } = $foo;
>
> Hvis jeg så senere forsøger at indsætte noget i min database hvor indholdet
> af $Tmp{ $ID }{ 'foo' } ikke er sat, så kommer fejlen.
Jammen, så er der jo nok ikke dat noget ind i din hash.
Har du prøvet at udskrive $ID og $foo umiddelbart før du
lægger data i hash'en?
> Spørgsmålet er nu hvordan jeg trapper denne fejl, så jeg kan f.eks. logge
> den?
Noget i stil med følgende kunne måske bruges:
unless (defined $Tmp{ $ID }{ 'foo' })
{
warn "Stor krise, nogen har glem at hælde bits i tanken.\n";
}
else
{
printf "2 gange foo er: %d", $Tmp{ $ID }{ 'foo' } * 2;
}
> Jeg forsøger iøvrigt at slette med
>
> delete $Tmp{$ID};
>
> Men at dømme ud fra processens ram forbrug, ser det ikke ud til at den
> slettes helt. Hvad gør jeg galt?
Tja, hvis du prøver at slette noget der slet ikke findes skal du
nok ikke regne med et mindre ram forbrug.
/Morten