foreach $key (keys %hash) { $ENV{$key} = $hash{$key}; } #### #!/usr/bin/perl use strict; use warnings; use Getopt::Long; my %engEnvVars; GetOptions ( "engEnvVar=s" => \%engEnvVars ) sub setEnvVars { my %engEnvVars = @_; my $key; foreach $key (keys %hash) { $ENV{$key} = $hash{$key}; } system("printenv") if $DEBUG; } setEnvVars(%engEnvVars); #### ./testScript.pl -engEnvVar APP_DIR=/usr/vendor/app/version/ -engEnvVar TMP_DIR=/usr/tmp/ #### use strict; %ENV = ( foo => 'bar '); system ( 'printenv' );