use Hook::LexWrap;
my $temp;
sub set_temp {
my $oldtemp = $temp;
$temp = shift;
print "Temp now $temp\n";
return $oldtemp;
}
print "Setting temp to 73 F...\n";
my $prev = set_temp(73);
print "Temp was ", $prev||"undef", " F\n";
print "Setting temp to 98 F...\n";
$prev = set_temp(98);
print "Temp was ", $prev, " F\n";
{
my $lexical = wrap set_temp,
pre => sub { splice @_, 0, 1, $_[0] * 1.8 + 32 },
post => sub { $_[-1] = ($_[0] - 32) / 1.8 };
print "Setting temp to 73 C...\n";
my $prev = set_temp(73);
print "Temp was ", $prev, " C\n";
}
print "Setting temp to 98 F...\n";
$prev = set_temp(98);
print "Temp was ", $prev, " F\n";
syntax highlighted by Code2HTML, v. 0.9.1