String an system() uebergeben

Hallo
ich moechte/muss aus einem Perl Programm heraus einen String an system() uebergeben, komme damit aber nicht ganz zurecht.

Ich muss wegen verschiedener Aenderungsmoeglichkeiten den String zunaechst in eien Variable einstellen. Die Variable dann dort in system() zusammen mit anderen Variablen zu verwenden ist ja kein Problem, aber ich nehme an, dass es wegen der Sonderzeichen Probleme gibt. Hier ist der String. Kann mir da jemand helfen?

$abc = „-F From: TESTService|%%c|Page: %%P of %%T“

Gruss und Dank
Christian

Hallo Christian.

ich moechte/muss aus einem Perl Programm heraus einen String
an system() uebergeben, komme damit aber nicht ganz zurecht.

ich nehme an, dass es wegen der Sonderzeichen Probleme gibt.
Hier ist der String.

$abc = „-F From: TESTService|%%c|Page: %%P of %%T“

Wenn Du system() einen einzelnen String der Form

system($befehlszeile)

übergibst, wird dieser an
die aktuelle Shell zur Interpretation und Verarbeitung
weitergereicht. Für die DOS-Shell unter Windows hat das
% eine Sonderbedeutung, was eine Erklärung sein könnte,
warum es nicht wie von Dir gewünscht funktioniert.

Die Shell-Verarbeitung kannst Du vermeiden, indem Du System
mit einer Parameterliste aufrufst:

system($programm, $argument1, $argument2);

Weitere Infos unter perldoc -f system und perldoc -f exec.

Gruß,
-Andreas.