# No taint implications. sub A { s/^\s*//; s/\s*$//; return $_; } # These untaint the return value. sub B { m/^\s*(.*\S)\s*$/; return $1; } sub C { m/(\S+.*\S*)/; return $1; } sub D { m/(\S?.*\S*)/; return $1; }