Используйте базовый Getopt::Long
модуль и не беспокойтесь о синтаксическом анализе аргументов самостоятельно.
Если у вас есть несколько аргументов, вместо того, чтобы делать то, что они говорят в том порядке, в котором они говорят,вы просто делаете что-то вроде следующего псевдокода:
if( option s is set ) {
run setup stuff
}
if( option b is set ) {
run backup stuff
}
Нет абсолютно никаких причин, почему ваш скрипт должен разрешать аргументы как -s -b
, а не -b -s
.Ваши пользователи будут ожидать, что если они предоставят -b -s
, то сначала будет выполнена настройка, а затем резервное копирование.Ваш сценарий должен быть достаточно умным.