Forum: PC-Programmierung In Perl ein Kommando aus String ausführen


von Jens (Gast)


Lesenswert?

Hallo,

Weiss jemand wie man in Perl folgendes Problem lösen könnte:

>
>my $Something = "123";
>my $CmdString = "print $something;";
>

Wie kann ich das Kommando aus $CmdString ausführen? Da Perl
eine Interpretersprache ist (ist es doch, oder?) hätte ich
vermutet das so etwas funktionieren sollte. Leider habe ich
bisher nicht herausgefunden wie man soetwas realisiert.

Jens

von Nik B. (nikbamert)


Lesenswert?

Hi, in php lautet der entsprechende Befehl eval().
Google meint dazu, dass der Befehl in Perl defür derselbe ist, nur kenne 
ich mit Perl nicht so aus, daher weiss ich nicht ob das wirklich das ist 
was du suchst...

http://gd.tuwien.ac.at/languages/perl/Hajji-Perlkurs/part1/eval.html

Nik

von Joerg W. (joergwolfram)


Lesenswert?

Am einfachsten ist es, das Kommando in Backticks (oder wie die heissen) 
einzuschließen:

$wert = `$CmdString`;

in $wert sollte dann der Rückgabewert des Programms liegen 
(normalerweise 0 oder halt ein Fehler).

Gruß Jörg

von Jens (Gast)


Lesenswert?

@Joerg & Nik:

Danke für die Anregungen, ich werde beide Varianten
ausprobieren.

Jens

von Thomas B. (yahp) Benutzerseite


Lesenswert?

Eval dürfte es sein. Backticks kann ich nicht mit Perl in Verbindung 
bringen, das ist doch nur so an der Shell.

von Jens (Gast)


Lesenswert?

Eval funktioniert wir gedacht, das mit den Backticks
habe ich nicht hinbekommen.

Danke nochmal,

Jens

von Bernd 0. (bernds)


Lesenswert?

Hallo zusammen,

hab mich vor ca. 15 Minuten hier eingeloggt und noch nicht so den 
Schimmer was wo hingehört. Kann man hier auch Beispiele für die 
Anwendungsprogrammierung in C++ (meinetwegen Datumsberechnung und so 
Zeugs) posten? Funktioniert soweit, habe nur noch ein kleines Problem 
mit der Berücksichtigung des Schaltjahres.

BerndS

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.