sub untaint { my ($string,$regex) = @_; croak "Bad regex '$regex'" unless ref $regex eq 'Regexp'; my ($untainted) = $string =~ /($regex)/; } print untaint( 33, qr/^\d+$/ );