my %input_hash = ( ... ); # serialize your hash my $arguments = Dumper \%input_hash; # this is how to escape an arbitrary string for the unix shell $arguments =~ s/'/'\\''/g; $arguments = "'$arguments'"; my $resultstring = `perl my_other_script.pl $arguments`; my %result_hash = %{eval $resultstring};