Thread Perl - trennen nach Leerer Zeile (6 answers)
Opened by savedxd at 2017-06-21 21:28

hlubenow
 2017-06-21 23:10
#186708 #186708
User since
2009-02-22
875 Artikel
BenutzerIn
[default_avatar]
Nee, "split()" trennt Bereiche innerhalb einer Zeile.

Entweder müßtest Du die Trennung in der Datei von Hand vornehmen, was mehr oder weniger aufwendig ist.
Oder: Wenn Du mit eckigen Klammern leben kannst, kannst Du dafür Config::Simple verwenden. Das ginge so: Daten ("config.ini"):
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
[h]
cool = ja
schön = nein

[d]
cool = nein
schön = ja

[b]
cool = nein
schön = nein

Skript:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl

use warnings;
use strict;

use Config::Simple;
use Data::Dumper;

my %Config;
Config::Simple->import_from('config.ini', \%Config);
print Dumper(\%Config);

Ausgabe:
Code: (dl )
1
2
3
4
5
6
7
8
$VAR1 = {
'h.schön' => 'nein',
'd.schön' => 'ja',
'h.cool' => 'ja',
'b.cool' => 'nein',
'b.schön' => 'nein',
'd.cool' => 'nein'
};

Wie Du siehst, ist dann erstmal alles in einem Hash. Wenn Du willst, kannst Du das dann noch von Hand trennen. Dabei kannst Du dann "split()" verwenden, um z.B. 'd.cool' in 'd' und 'cool' zu trennen.

HTH
Last edited: 2017-06-21 23:11:29 +0200 (CEST)

View full thread Perl - trennen nach Leerer Zeile