#!/usr/bin/perl use strict; use warnings; my ($sep, $z); sub func2 { #print "func2: \$sep == $sep\n"; eval '$z = sub { print "sep == ($sep)\n"; printf "sep => %p\n", \$sep}'; &{$z}(); } sub func1 { $sep = "AB"; printf "sep => %p\n", \$sep; func2(); } 1;