6 Einträge, 1 Seite |
1 2
$ENV{VERTEILER} = 'mustermann@muster.example'; $ENV{EMAILS} = $ENV{VERTEILER};
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
open(CONFIG, $file) or die print "\n\nFEHLER: ini-File ($file) nicht gefunden ($!)\n"; while (<CONFIG>) { chomp; # kein NewLine s/#.*//; # keine Kommentare s/^\s+//; # keine fuehrenden White-Spaces s/\s+$//; # keine angehaengten White-Spaces next unless length; # noch was da? my ($var, $value) = split(/\s*=\s*/, $_, 2); $value = qx{ ksh -c '. $auto_ini_file ; echo "\$$var" ' } ; chomp $value; $AUTO_ENV_DATA{$var}="$value"; } close(CONFIG);
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
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use Carp;
my %config;
while(my $line = <DATA>) {
chomp($line);
my ($k, $v) = ($line =~ m/^\s*(\w+)\s*=\s*(.*)\s*$/);
if (defined $k and defined $v) {
$v =~ s/['"]//g;
if ($v =~ m/^\$(.*)/) {
$v = $config{$1};
}
$config{$k} = $v;
}
}
carp Dumper \%config;
__DATA__
VERTEILER='mustermann@muster.de'
EMAILS=$VERTEILER
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
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my @ini=<DATA>; print Dumper(parse(@ini)); sub parse { my @ini=@_; my %ret; for my $data (@ini) { $data=~s/#.+$//; $ret{$1}=$2 if($data=~/^\s*(.+?)\s*=\s*(.+?)\s*$/); } my $reg=join('|', keys(%ret),keys(%ENV) ); while(my ($k,$v)=each(%ret)) { if($v=~/^'/)#' { $v=~s/^'|'$//gs; $v=~s/\\'/'/gs; } else { if($v=~/^"/)#" { $v=~s/^"|"$//g; } $v=~s/\\\$/#DOLLAR#/g; $v=~s/\$($reg)/$ret{$1}? $ret{$1}: $ENV{$1}? $ENV{$1}: ''/ge; $v=~s/#DOLLAR#/\$/g; $v=~s/\\//g; } $ret{$k}=$v if($v ne $ret{$k}); } return \%ret; } __DATA__ # ein Kommentar TEST=Ein test # auch eingeschoben WER=Jemmand besonderes WAS=$TEST TTT=$SHELL EEE=\$SHELL Name=Blub Email=$Name@rabarber.test BLA='ein Text dessen $EEE nicht beachtet wird' BLUB="Hier wird $TTT beachtet. das das \$Name aber nicht."
6 Einträge, 1 Seite |