Это мой первый пост в stackoverflow. :)Perl GetOpt :: Длинные множественные аргументы с необязательным параметром
Я пытаюсь решить этот сценарий с помощью GetOpt :: Long.
./myscript -m/а -m/BCD -t -m NFS/ECD -t ... NFS
-m является точкой монтирования и -t является типом файловой системы (может быть размещен, но это не обязательно).
Getopt::Long::Configure("bundling");
GetOptions('m:[email protected]' => \$mount, 'mountpoint:[email protected]' => \$mount,
't:[email protected]' => \$fstype, 'fstype:[email protected]' => \$fstype)
Это не так, я не в состоянии пара надлежащего крепления и FSType
./check_mount.pl -m /abc -m /bcd -t nfs -m /ecd -t nfs
$VAR1 = [
'/abc',
'/bcd',
'/ecd'
];
$VAR1 = [
'nfs',
'nfs'
];
мне нужно заполнить неопределенный FSType например с значением «undef». лучшее решение для меня было бы получить хэш, такие как ...
%opts;
$opts{'abc'} => 'undef'
$opts{'bcd'} => 'nfs'
$opts{'ecd'} => 'nfs'
Возможно ли это? Спасибо.
Вы пытаетесь применить очень специфический порядок для параметров, но я не думаю, что это очень часто или интуитивно понятно. Если бы я был пользователем вашего приложения, я бы ожидал, что '-m foo -t bar' будет таким же, как' -t bar -m foo'. Возможно, вы сможете сделать это с помощью Getopt :: Long, но я думаю, что другой дизайн будет лучше. – ThisSuitIsBlackNot