MMh. So ist ja kein regelmäßiges System drin. Ich kann zumindest keins erkennen. Wenn du aber evtl. die Möglichkeit hättest, die Werte einer Liste mit Whitespaces zu trennen und dann erst die Kommentare dann könnte es z.B. so gehen:
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
my $string = qq~
GENLIST = Array2.genlist # Kommentar
TERMLIST = 02_IrgendeineListe 03_IrgendeineListe # Kommentar \
# Kommentar, \
# Kommentar
STARTLIST = dateiname.ids # Kommentar
OUTPUTNAME = # Kommentar
CROSSLIST = 01_XY # Kommentar
ADDFILTER = # Kommentar
~;
use strict;
use warnings;
use Data::Dumper;
my %hash;
my @lines = split /\r?\n/,$string;
for (@lines) {
if (/(\w+?)\s*?=\s*?(.*?)#/) {
my ($key,$values) = ($1, $2);
my @values = $values =~ /\s*(\S+)\s*/g;
$hash{$key} = [@values];
}
}
print Dumper \%hash;
_ _ END _ _
$VAR1 = {
'ADDFILTER' => [],
'CROSSLIST' => [
'01_XY'
],
'TERMLIST' => [
'02_IrgendeineListe',
'03_IrgendeineListe'
],
'OUTPUTNAME' => [],
'STARTLIST' => [
'dateiname.ids'
],
'GENLIST' => [
'Array2.genlist'
]
};
Ich hoffe das hilft dir etwas.
Gruß Alex