#!c:/perl/bin/perl -w use strict; my %data = ( 'bar' => { 'code' => 'print $foo;', 'values' => { 'foo' => 'hello' } } ); my $foo = 'hi'; eval $data{bar}{code}; if ($@) { $data{bar}{code} =~ s/\$([^;]+);/\$data{bar}{values}{$1};/g; eval $data{bar}{code}; }