use Getopt::Long; my (%parm, %file); GetOptions( 'recurse' => \$parm{recurse}, 'cmprlevl' => \$parm{cmprlevl}, 'outfile' => \$file{out}, 'logfile' => \$file{log} ); $parm{recurse} ||= 1; $parm{cmprlevl} ||= 9; $parm{out} ||= 'tgzpl.tar.gz'; $parm{log} ||= 'tgzpl.log';