I'm not sure that Getopt::Long is the right tool for the job here, but if you want to use it, localize @ARGV and assign your array of configuration parameters to @ARGV before making a call to Getopt::Long. There's some code and discussion of this here.