Thread Hashtabelle dynamisch erzeugen (13 answers)
Opened by benjo at 2008-05-11 11:08

topeg
 2008-05-11 14:00
#109566 #109566
User since
2006-07-10
2611 Artikel
BenutzerIn

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

use strict;
use warnings;
use Data::Dumper;

# in welchem Verzeichnis willst du suchen
my $workdir='/hier/pfad/zum/verezeichnis';

# da rein kommen alle Datensätze
my %datensaetze;

# Verzeichnis öffnen
opendir(my $dir, $workdir) or die "Konnte Verzeichnis $workdir nicht oeffnen ($!)\n";
# Dateinamen einzeln auslesen
while(my $dat=readdir($dir))
{
# ist es wirklich eine Datei?
if(-f "$workdir/$dat")
{
# Datei öffnen
open(my $in, '<', "$workdir/$dat") or die "konnte Datei $workdir/$dat nicht oeffnen ($!)\n";
# Namen für den Hash generieren
$dat=~s/^(.+?)\..+$/$1/s;
# wenn noch kein hasheintrag mir dem Namen existiert einen erzeugen
$datensaetze{$dat}={} unless (exists($datensaetze{$dat}));
# Datei Zeilenweise auslesen
while(my $line=<$in>)
{
# Zeilrnumbruch entfernen
chomp($line);
# Zeile aufsplitten
my ($name,$wert)=split(/\s*,\s*/,$line,2);
# Daten in den Hash schreiben
$datensaetze{$dat}{$name}=$wert;
}
# Datei schließen
close ($in);
}
}
# Verzeichnis schließen
closedir($dir);

# alles gefundenen ausgeben
print Dumper(\%datensaetze)."\n";

View full thread Hashtabelle dynamisch erzeugen