Dies ist meine erste Post auf Stackoverflow. :)Perl GetOpt :: Lange Mehrfachargumente mit optionalem Parameter
Ich versuche dieses Szenario mit GetOpt :: Long zu lösen.
./myscript -m/abc -m/bcd -t nfs -m/ECD -t nfs ...
-m Einhängepunkt und -t Typ von Dateisystem (angeordnet werden kann, aber es ist nicht obligatorisch).
Getopt::Long::Configure("bundling");
GetOptions('m:[email protected]' => \$mount, 'mountpoint:[email protected]' => \$mount,
't:[email protected]' => \$fstype, 'fstype:[email protected]' => \$fstype)
Das ist nicht richtig, ich bin nicht in der Lage Paar richtige Halterung und fstype
./check_mount.pl -m /abc -m /bcd -t nfs -m /ecd -t nfs
$VAR1 = [
'/abc',
'/bcd',
'/ecd'
];
$VAR1 = [
'nfs',
'nfs'
];
Ich fülle brauchen nicht näher bezeichnet -fstype z.B. mit "undef" -Wert. die beste Lösung für mich Hash würde bekommen wie ...
%opts;
$opts{'abc'} => 'undef'
$opts{'bcd'} => 'nfs'
$opts{'ecd'} => 'nfs'
Ist es möglich? Vielen Dank.
Sie versuchen, eine sehr spezifische Reihenfolge für Optionen zu erzwingen, aber ich denke nicht, dass das sehr häufig oder intuitiv ist. Wenn ich ein Benutzer Ihrer Anwendung wäre, würde ich erwarten, dass "-m foo -t bar" dasselbe ist wie "-t bar -m foo". Du könntest das vielleicht mit Getopt :: Long machen, aber ich denke, ein anderes Design wäre besser. – ThisSuitIsBlackNot