use strict;
use warnings;
my $i = 1;
#return a pointer to a function that should be invoked
sub makeLazy {
my ($inp) = @_;
sub {
eval $inp;
};
}
my $part2 = makeLazy('print "\nnow its $i";');
print "\ni is ".$i++;
$part2->();
print "\ni is $i";
####
% test1.pl
i is 1
now its 2
i is 2
####
use strict;
use warnings;
#return a pointer to a function that should be invoked
sub makeLazy {
my ($inp) = @_;
sub {
eval $inp;
};
}
my $i = 1;
my $part2 = makeLazy('print "\nnow its $i";');
print "\ni is ".$i++;
$part2->();
print "\ni is $i";
####
% test1.pl
i is 1
i is 2