Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7288[/thread]

Löschen von Hash-Elementen (war: Der Fehler???)



<< >> 6 Einträge, 1 Seite
Matze
 2005-09-18 22:53
#58157 #58157
User since
2005-08-29
222 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo!

Ich habe eine Struktur, HASH->HASH->ARRAY, zum start des Programmes durchlaufe ich diese Struktur, um in der Struktur altes zu loeschen und aktuelles anzuzeigen.

Doch beim loeschen funktioniert was nicht . . .
Er loescht zweimal das gleiche, wonach natürlich ein Fehler auftritt:
Use of freed value . . .

Der Code:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  foreach $name (%$ref) {
   bb:foreach my$dat (%{$ref->{$name}}) {
     if ($dat eq "$datum") {
foreach my$term (@{$ref->{$name}{$dat}}) {
 printf "$tab %-10s: %-40s\n", $name, $term;
}
next bb;
     }

     my @dat = split ".",$dat;

     if ($dat[0] =~ /^0/) {
substr ($dat[0],0,1) = "";
     }
# # # # # # # # # # # # # # # # # # # # #
     if ($dat[0] <= $max && $val == 1) {
delete $ref->{$name}{$dat};
print "Geloescht!!\n";
     }
# # # # # # # # # # # # # # # # # # # # #
   }
 }


Ich weiß einfach net warum er 2x das gleiche löscht.

MfG. Matze
Mit freundlichen Grüßen: Matze
sri
 2005-09-18 23:26
#58158 #58158
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
Mit nem vernuenftigen Titel wuerde dir vielleicht sogar jemand helfen...
Matze
 2005-09-18 23:31
#58159 #58159
User since
2005-08-29
222 Artikel
BenutzerIn
[Homepage] [default_avatar]
Und wie ändere ich den ?

MfG. Matze
Mit freundlichen Grüßen: Matze
betterworld
 2005-09-18 23:46
#58160 #58160
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Quote
Code: (dl )
foreach $name (%$ref)

Das ist wahrscheinlich nicht das, was Du moechtest. Du kannst Dir entweder die Schluessel auflisten lassen (foreach $name (keys %$ref)) oder die Werte (foreach $name (values %$ref))
renee
 2005-09-19 14:11
#58161 #58161
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das foreach $name(%$ref){ geht immer abwechselnd über einen Schlüssel und dann über den dazugehörigen Wert...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Matze
 2005-09-19 16:40
#58162 #58162
User since
2005-08-29
222 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ahh, was bin ich für ein Idiot...

Danke.
Ja es sollte heissen "foreach $name (keys %$ref) ...".
Und auch bei der 2ten Schleife.

Nochmla danke!!!

MfG. Matze\n\n

<!--EDIT|Matze|1127133833-->
Mit freundlichen Grüßen: Matze
<< >> 6 Einträge, 1 Seite



View all threads created 2005-09-18 22:53.