Thread Hash-Inhalt auf Festplatte speichern (26 answers)
Opened by der_thomas at 2013-09-21 17:43

GwenDragon
 2013-09-26 09:37
#170654 #170654
User since
2005-01-17
14538 Artikel
Admin1
[Homepage]
user image
prüf doch mal warum dein eval fehlschlägt.
Code (perl): (dl )
1
2
3
4
open ($fh,'<','config.dat') or die $!;
my $config_neu = eval <$fh>;
die $@ if $@;
print Dumper($config_neu);

Dann siehst du:
Uncaught exception from user code:
Global symbol "$VAR1" requires explicit package name at (eval 2) line 1, <$fh> line 1.
Missing right curly or square bracket at (eval 2) line 3, at end of line
syntax error at (eval 2) line 3, at EOF
at C:\Users\test\x.pl line 17, <$fh> line 1.


Weil beim eval $VAR1 befüllt wird und nicht $config_neu.
In config.dat steht doch:
Code: (dl )
1
2
3
$VAR1 = {
'max_prozesse' => 5
};



ich mache das so:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
open ($fh,'<','config.dat') or die $!;
my $config_neu;
{ 
$/ = undef;  # kein Zeilentrenner beim Einlesen verwenden
my $s= <$fh>; # in einem Rutsch einlesen
$s=~s|\$VAR1|\$config_neu|; # Zielvariable für eval setzen
eval "$s";                  # Code ausführen
}
print Dumper($config_neu);
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

View full thread Hash-Inhalt auf Festplatte speichern