Schrift
[thread]8469[/thread]

ausgabe array in hash



<< >> 6 Einträge, 1 Seite
Noisebreath
 2006-11-03 16:29
#71362 #71362
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
$doc_type_header->{$old_doc}= @headerarr;

so habe ich mein hash mit nem array initialisiert.

wie kann ich %doc_type_header auslesen um an die @headerarr - elemente zu kommen?

ich dachte zuerst

foreach my $ele (%doc_type_header){
foreach my $ele2($ele){
print $ele2;

aber das funzt nicht..

kann mir jemand sagen wie ich das machen kann?
danke im voraus
renee
 2006-11-03 16:35
#71363 #71363
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du musst eine Referenz auf das Array speichern:
Code: (dl )
$doc_type_header->{$old_doc}= \@headerarr;


und dann:
Code: (dl )
1
2
3
for my $element(@{$doc_type_header->{$old_doc}}){
print $element,"\n";
}


Das hier solltest Du unbedingt lesen: perlreftut
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/
Noisebreath
 2006-11-03 16:38
#71364 #71364
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
danke für die info, aber ich ruf die elemente ausserhalb der funktion auf die sie herstellt. das heisst ausserhalb hab ich nur
%doc_type_header

wie komm ich da an die elemente ran?

den thread werd ich wenn ich zeit hab durchlesen. wäre lieb wenn du mir kurz das noch durchgeben könntest :)
Noisebreath
 2006-11-03 16:39
#71365 #71365
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
my %doc_type_header;

&Doc_type_header(\%doc_type_header);


# hier soll ausgabe hin!!!!!!!!!!!!!!!!!!!

# erzeuge Hash in denen für jede Dokuart die header in der richtigen Reihenfolge stehen
# $doc_type_header[$dokuart]=@headerarray


sub Doc_type_header{
open(DATEI, "<./Konfigurationsdaten/20060310.DOCFIELD") || die "Datei nicht gefunden";
my @Zeilen = <DATEI>;
close(DATEI);

my $doc_type_header = shift;
my $dokuart;
my $zahl2;
my $old_doc;
my @headerarr;
#Gehe Zeilen der Docfielddatei durch

foreach (@Zeilen){

if (/([\w\$]+)\;(\d+)\;(\d+)\;/){
$dokuart = $1;
$zahl2 = $3;

if(!defined $old_doc){
$old_doc = $dokuart;
}

#wenn dokuart nicht mehr die gleiche wie im letzten durchlauf der froeach-
#schleife speichere eine kopie des hashs in hash2 mit key alte dokuart und
#leere danach wieder den hash um ihn für die nächste dokuart neu füllen zu können.
if($dokuart ne $old_doc){
$doc_type_header->{$old_doc}= \@headerarr;
@headerarr =();
}

#gehe Zeilen der Repository durch und speichere zahl und header in hash
open(DATEI, "<./Konfigurationsdaten/20060310.REPOSITORY") || die "Datei nicht gefunden";
my @Zeilen2 = <DATEI>;
close(DATEI);

foreach(@Zeilen2){
if(/^$zahl2;([^;]+);([^;]+)/){
push(@headerarr,$2);
}
}
}
$old_doc = $dokuart;
}
renee
 2006-11-03 17:06
#71366 #71366
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
for my $old_doc(keys %doc_type_header){
print $old_doc,"\n";
for my $element(@{$doc_type_header{$old_doc}}){
print "\t",$element,"\n";
}
}
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/
Noisebreath
 2006-11-03 18:16
#71367 #71367
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
danke sehr :)
<< >> 6 Einträge, 1 Seite



View all threads created 2006-11-03 16:29.