Вы говорите ...:
Запустив скрипт нормально, вы бы
запустить
$ perl script.pl -flag = "что-то"
-anotherflag = "somethingelse"
... но тогда оболочка, запущенная по приглашению $
, удалит "
: скрипт perl никогда не увидит их (они просто сыграли бы свою роль в предотвращении пробелов и специальных символов, таких как '> ',' <',' | и т. д., будучи интерпретированными внутри них - эти пробелы и / или специальные символы будут просто передаваться как часть аргумента). С такими значениями, как вы их даете (без пробелов, без специальных), эти двойные кавычки абсолютно бесполезны, и было бы абсолютно безразлично их опускать. </p>
В любом случае, если это действительно тот эффект, который вы хотите, просто сделайте в вашем bash-скрипте:
perl script.pl -flag="something" -anotherflag="$variable"
(или, пропустите двойные кавычки - это абсолютно безразлично к something
, безразлично к $variable
, если, как в вашем примере, это просто foo
, но не во всех случаях).