use strict; use vars qw ( %data $digit ); $data{value} = 'abcd.$digit.xyz'; sub process_value { $digit = 1000; eval { $data{value} }; print "\$data{value} $data{value} \n"; } &process_value; #### "$data{value} abcd.$digit.xyz "