Thread Zweistufige Hash-Referenz zuweisen (36 answers)
Opened by mikdoe at 2009-06-03 20:50

Linuxer
 2009-06-03 23:25
#122307 #122307
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Hi,

hier mal ein Beispiel.

Code (perl): (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
55
56
57
58
59
60
#!/usr/bin/perl -l
# vi:ts=4 sw=4 et:
use strict;
use warnings;

my $var = bless( {
                 'checks' => [
                             'length', 'bank_code', 'account_number'
                           ],
                 'account_number' => '12345678',
                 'balance' => '92',
                 'bic_candidates' => [
                                     bless( {
                                              'city' => 'Frankfurt am Main',
                                              'sampleurl' => undef,
                                              'wwwcount' => '0',
                                              'bic' => 'INGDDEFFXXX'
                                            }, 'BICStruct' ),
                                     bless( {
                                              'city' => undef,
                                              'sampleurl' => 'second',
                                              'wwwcount' => '12',
                                              'bic' => 'INGDDEFF'
                                            }, 'BICStruct' )
                                   ],
                 'account_check' => 'passed',
                 'iban' => 'DE12345',
               }, 'IBANCalcResStruct' );



for my $k ( keys %$var ) {
    if ( $k eq 'checks' ) {
        # via checks ist ein array erreichbar

        # alle elemente verarbeiten
        for my $e ( @{ $var->{$k} } ) {
            print "$k -> $e";
        } 

        # einzelnes element ansprechen
        print "$k -> ", $var->{$k}->[1];
    }
    elsif ( $k eq 'bic_candidates' ) {
        # hier ist ein array of hashes erreichbar
        # jede enthaltene hash-referenz ist ein Objekt des Typs BICStruct

        for my $e ( @{ $var->{$k} } ) {
            # $e enthaelt ein Objekt des Typs BICStruct auf Basis eines Hash
            # dereferenziere wie Hash
            print $e;
        }
    }
    else {
        print $k;
        }
}


__END__


Lies bitte mal:

perldoc perlref
perldoc perllol
perldoc perldsc

edit: kommentare erweitert
Last edited: 2009-06-03 23:40:49 +0200 (CEST)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Zweistufige Hash-Referenz zuweisen