use Data::Dumper; use Tk; my $foo = '%h = (foo => q{bar}); \%h'; my $mw = MainWindow->new()->bind('', [\&foo, $foo]); MainLoop(); sub foo { my (undef, $foo) = @_; my $retval = eval $foo; print Dumper $retval; }