# slightly modified from Storable docs use strict; use warnings; use Safe; use Storable qw(freeze thaw); my $safe = Safe->new(); $safe->permit(qw(:default require)); local $Storable::Deparse = 1; local $Storable::Eval = sub { $safe->reval($_[0]) }; my $serialized = freeze(sub { return 'hello world' }); my $code = thaw($serialized); print $code->(), "\n";