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