package retaint; use strict; use warnings; use Taint::Util; sub ut { taint(my $sv = "hlagh"); $sv = $1 if $sv =~ /^(.*)/; $sv; } sub tt { taint(my $sv = "hlagh"); $sv; } sub f{ my ($package, $filename, $line ) = caller; printf qq/%s:%d: tainted? %d\n/, $filename, $line, int tainted $_[0]; } sub foo { f( tt() ); f( ut() ); } 1;