Frage

Ich habe eine Zeichenfolge mit möglichen Kommandozeilenparameter (unter Verwendung eines Read-Eval-Print-Loop-Programm) und ich möchte es auf die Befehlszeilenargumente analysiert ähnlich werden, wenn auf getopt weitergegeben :: Long.

Um dies näher auszuführen:

Ich habe eine Zeichenfolge

$str = '--infile /tmp/infile_location --outfile /tmp/outfile'

Ich mag es von GetOptions analysiert werden, so dass es einfacher für mich ist es, neue Optionen hinzuzufügen.

Eine Abhilfe, die ich denken konnte, ist die Zeichenfolge auf Leerzeichen zu spalten und @ARGV mit neuen Array ersetzen und dann GetOptions nennen. so etwas wie ...

my @arg_arr = split (/\s/, $input_line);

# This is done so that GetOptions reads these new arguments
@ARGV = @arg_arr;
print "ARGV is : @ARGV\n";
GetOptions (
            'infile=s'  => \$infile,
            'outfile=s' => \$outfile
           );

Gibt es einen guten / besseren Weg?

War es hilfreich?

Lösung

Überprüfen Sie den Abschnitt Parsen Optionen aus eine beliebige Zeichenfolge in der noreferrer"> Manpage rel="nofollow , ich denke, es tut genau das, was Sie suchen.

Andere Tipps

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top