use Data::Dumper; sub nothing { return () } my %hash = ( state => 'db_user', usr_id => 1, edit_usr_id => nothing(), mode => 'add', ); warn Dumper\%hash; %hash = ( state => 'db_user', usr_id => 1, edit_usr_id => scalar nothing(), mode => 'add', ); warn Dumper\%hash; __DATA__ $VAR1 = { 'add' => undef, 'usr_id' => 1, 'edit_usr_id' => 'mode', 'state' => 'db_user' }; $VAR1 = { 'usr_id' => 1, 'mode' => 'add', 'edit_usr_id' => undef, 'state' => 'db_user' };