Schrift
[thread]5970[/thread]

Etwas zu einem Mehrdimensionalen Hash hinzufügen



<< >> 7 Einträge, 1 Seite
renee
 2003-12-15 17:38
#76121 #76121
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Hi!

warum funktioniert folgendes
Code: (dl )
  $tmp_hash{ac_nr}->{ac_nr} = 1;
aber folgendes nicht
Code: (dl )
  $tmp_hash{$ac_nr}->{ac_nr} = 1;
??
$ac_nr ist auch initialisiert. Am fehlenden Wert kann es also nicht liegen...
Ich bin schon echt am Verzweifeln...
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/
pq
 2003-12-15 17:49
#76122 #76122
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
vielleicht solltest du einfach mal deine sicht von "funktioniert nicht"
erklären.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
$ perl -wle'
use Data::Dumper;
$ac_nr = 23;
$tmp_hash{$ac_nr}->{ac_nr} = 1;
print Dumper \%tmp_hash;'
$VAR1 = {
         '23' => {
                   'ac_nr' => 1
                 }
       };

für mich sieht das prima aus.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
renee
 2003-12-15 18:00
#76123 #76123
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich habe ein
Code: (dl )
 print Dumper(\%tmp_hash);

hinter beide Varianten gemacht.
Bei der ersten Variante (die funktioniert) sieht es dann ähnlich aus wie bei Dir, aber der zweite Dump wird nicht gemacht...
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/
pq
 2003-12-15 19:01
#76124 #76124
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
wenn derselbe code bei dir was anderes ausspuckt, dann ist es wohl ein bug. welche version,
welches OS? und hast du wirklich genau obigen code ausgeführt? ich würde ja drauf
wetten, dass $ac_nr eben nicht initialisiert ist.
erstelle einfach mal ein komplettes (kurzes! ) skript und poste es mit ausgabe. oder sag,
was bei meinem beispiel rauskommt.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
renee
 2003-12-15 23:14
#76125 #76125
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich habe genau den Code ausgeführt und $ac_nr ist definitiv ausgeführt.
Ich habe testweise mal $ac_nr ausgegeben direkt bevor ich diese Zeile $tmp_hash{ac_nr}->{ac_nr} = 1; habe...

OS: SuSE 7.3 Professional

Die Ausgabe kann ich aus mehreren Gründen nicht posten:
1.) Ist das Skript auf der Arbeit und
2.) Gibt es keine Ausgabe. Das 2. print Dumper(\%tmp_hash); wird gar nicht ausgeführt...
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/
pq
 2003-12-16 01:35
#76126 #76126
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
aber um einen bug zu melden, musst du ein komplettes skript erstellen. eine aussage
wie "Ich habe testweise mal $ac_nr ausgegeben direkt bevor ich..." ist nicht so wirklich
hilfreich. du kannst doch wohl auf der arbeit genau meinen code ausführen, oder nicht?
genauer code und ausgabe per cut&paste ist schon notwendig.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Dubu
 2003-12-18 02:07
#76127 #76127
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=renee,15.12.2003, 22:14]Ich habe genau den Code ausgeführt und $ac_nr ist definitiv ausgeführt.
Ich habe testweise mal $ac_nr ausgegeben direkt bevor ich diese Zeile $tmp_hash{ac_nr}->{ac_nr} = 1; habe...
[/quote]
Also, wenn du
$tmp_hash{ac_nr}->{ac_nr} = 1;
setzt, und dann $ac_nr so definierst:
$ac_nr = 'ac_nr';
dann sollten
print $tmp_hash{ac_nr}->{ac_nr};
und
print $tmp_hash{$ac_nr}->{ac_nr};
das gleiche ausgeben.
Wenn $ac_nr einen anderen Wert hat, klappt es natuerlich nicht.

Quote
Die Ausgabe kann ich aus mehreren Gründen nicht posten:
1.) Ist das Skript auf der Arbeit und
2.) Gibt es keine Ausgabe. Das 2. print Dumper(\%tmp_hash); wird gar nicht ausgeführt...

Alles wegstreichen, was nicht zum Problem gehoert und das Restproblem morgen posten. :-)

Und ehrlich gesagt halte ich es fuer sehr zweifelhaft, dass es sich um einen Perl-Bug handelt und das print() "gar nicht ausgefuehrt" wird, aber ausgeschlossen ist es natuerlich nicht.
<< >> 7 Einträge, 1 Seite



View all threads created 2003-12-15 17:38.