# Instead of sub frobnitz { my ($input) = @_; if ($input =~ /foo/) { $input =~ s!foo!frobnitz!g; print $input; }; }; # write: sub frobnitz { my ($input) = @_; if ($input =~ /foo/) { $input =~ s!foo!frobnitz!g; return "$input" } else { return $input; }; }; # ... print frobnitz($in);