Я использую Getopt :: Long для разбора флагов командной строки и аргументов для скрипта perl. Для некоторых флагов мне нужно объявить переменные в скрипте, которые используются только в том случае, если этот флаг выбран, иначе они никогда не будут использоваться. Я хочу объявить их условно, т. Е. Только в том случае, если используется флаг, так что у меня нет кучи неиспользуемых переменных, сидящих вокруг. Вот пример кода, который не работает, но иллюстрирует, что я хочу делать.Как объявить переменные, зависящие от флагов, используя Getopt :: Long in perl?
use Getopt::Long qw(GetOptions);
my ($f1, $f2, $f3);
GetOptions('f1' => \$f1, 'f2' => \$f2, 'f3' => \$f3);
if($f2){
#declare some variables needed only if $f2 is turned on
}
Может кто-нибудь порекомендовать правильный способ сделать это?
[Использование хэш] (https: // metacpan.org/pod/Getopt::Long#Options-with-hash-values) вместо связки скаляров. – ThisSuitIsBlackNot
Правильный способ - не делать микрооптимизации, которые делают ваш код менее читаемым. – mob
Ах, хэш имеет смысл. Спасибо за идею. Чтобы быть ясным, толпа предлагала объявить переменные независимо от значения флага, а затем просто не использовать их, если они не нужны? – jms