Perl Code aus Textdatei auslesen und ausführen
Friedhelm
- perl
Hallo Zusammen,
ich möchte eine Textdatei auslesen, in der sich Perl-Code befindet und den Code dann ausführen lassen.
Die Text-Datei (datei.txt) beinhaltet z.B.:
Das ist ein Textdatei
$ENV{'REMOTE_HOST'}
...
Die einzelnen Records werden dann als Arrays/Strings eingelesen z.B.:
open(FILE, "<$datei")\n";
my $i=0;
while(<FILE>) {
$record[$i] = $_;
$i++;
}
close(FILE);
Für die Ausgabe der Zeile 1 und 2 ergäbe es dann:
print "$record[1]\n"; # Ergebnis: Das ist ein Textdatei
print "$record[2]\n"; # Ergebnis: $ENV{'REMOTE_ADDR'}
Leider wird die Umgebungsvariable nicht ausgeführt!
FRAGE: Wie bekomme ich es hin, dass der $record[2] nicht als String interpretiert, sondern als Variable ausgeführt wird und z.B.: 127.0.0.1 ausgegeben wird?
Danke und Gruß
Friedhelm
use Mosche;
my $i=0;
while(<FILE>) {
$record[$i] = $_;
$i++;
}
Hier reicht:
my @record = <FILE>;
Für die Ausgabe der Zeile 1 und 2 ergäbe es dann:
print "$record[1]\n"; # Ergebnis: Das ist ein Textdatei
print "$record[2]\n"; # Ergebnis: $ENV{'REMOTE_ADDR'}
Das sind die Zeilen 2 und 3, die du da ausgibst. (Array-Indize beginnen bei 0, nicht bei 1).
Leider wird die Umgebungsvariable nicht ausgeführt!
Wenn du wirklich sicher bist, was in der Variablen drinsteht (also die ganze Datei nur von dir beschrieben wird und kontrolliert wird) dann hilft dir eval() sicher weiter:
perldoc -f eval
Verzichte lieber darauf, wenn du die Datei nicht vollständig kontrollieren kannst. Vorsicht insbesondere, da die Möglichkeit entstehen kann, daß du fremden Perl-Code ausführst.
use Tschoe qw(Matti);