Thread Wie bearbeitet man ein Array? (12 answers)
Opened by geloescht at 2012-06-25 22:35

payx
 2012-06-25 22:55
#159368 #159368
User since
2006-05-04
564 Artikel
BenutzerIn

user image
Hallo HP-User,

2012-06-25T20:35:03 ?
Was ich erreichen möchte:

Ich möchte folgende Skalare aus dem Array haben:
Je die $DB_IPAdresse plus die zugehörigen Werte wie
- $DB_Monatstag ...

Ich habe im Programm bereits die aktuell zu schreibende IP. Diese möchte ich mit sämtlichen IP im Array vergleichen. Gibt es einen Treffer (SameIP),
muss die dazugehörige Datum und Zeit ausgelesen werden.


Du möchtest ein HoH (Hash of HashRefs) erzeugen, dessen Schlüssel die IP-Adresse ist. Die Values sind wieder Hashes.

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
#!/usr/bin/perl

use strict;
use warnings;

use Data::Dumper;

open(my $filemanagerFH, "<", "coresys/incoming.csv") or die "ERROR: Unable to open the IC-file: $!";

my %hoh; # Meine verschachtelte Datenstruktur

while (my $zeile = <$filemanagerFH>) {

        chomp $zeile;

        my ($DB_customstorycode, $DB_headline, $DB_benutzergeschichte, $DB_zaehler, $DB_internetpost, $DB_tbgelesen, $DB_IPAdresse, $DB_Monatstag, $DB_Monat, $DB_Jahr, $DB_Stunden, $DB_Minuten, $DB_Sekunden, $DB_clientdatakey) = split(/;/,$zeile);
        
        $hoh{$DB_IPAdresse} = {
                customstorycode      => $DB_customstorycode
                , headline           => $DB_headline
                , benutzergeschichte => $DB_benutzergeschichte
                , zaehler            => $DB_zaehler
                , internetpost       => $DB_internetpost
                , tbgelesen          => $DB_tbgelesen
                , Monatstag          => $DB_Monatstag
                , Monat              => $DB_Monat
                , Jahr               => $DB_Jahr
                , Stunden            => $DB_Stunden
                , Minuten            => $DB_Minuten
                , Sekunden           => $DB_Sekunden
                , clientdatakey      => $DB_clientdatakey
        };
        
        print Dumper \%hoh; # Wie sieht meine Datenstruktur aus?
        
        print $hoh{$DB_IPAdresse}->{benutzergeschichte}; # Ein Beispielzugriff
        
}


Dieser Schnipsel hilft Dir hoffentlich dabei, Deine Daten richtig einzulesen und auch wieder auszulesen.

Grüße
payx

View full thread Wie bearbeitet man ein Array?