in reply to Re^4: Test::Pod:Coverage: excluding 'used' modules
in thread Test::Pod:Coverage: excluding 'used' modules

"-T" is for taint mode. I don't think many people use it these days. It adds a little metadata to all strings to track whether they come from the outside world or not; the idea being that string data from the outside world is potentially untrustworthy, so shouldn't be interpolated directly into SQL queries, etc.

Date::Manip does check an environment variable (which counts as tainted data) as part of its initialization, so that could be it?

  • Comment on Re^5: Test::Pod:Coverage: excluding 'used' modules

Replies are listed 'Best First'.
Re^6: Test::Pod:Coverage: excluding 'used' modules (taint mode)
by hippo (Archbishop) on Nov 19, 2019 at 13:38 UTC
    I don't think many people use it these days.

    That's probably going to be hard to estimate as it is enabled in scripts via the shebang line and scripts are less likely to be open source and published than other code. However, I use taint mode as much now as I did 10 years ago and find it a very useful line of defence. Proper handling of tainted data is a skill in itself and maybe it isn't taught so much now. That would be a shame.

Re^6: Test::Pod:Coverage: excluding 'used' modules
by loris (Hermit) on Nov 19, 2019 at 08:34 UTC

    Good call. If I remove the '-T' option, the test runs successfully.

    So what does Date::Manip read from the environment? Something to do with the timezone, I guess.

    Thanks,

    loris

      Yep. Before even that point it checks $ENV{DATE_MANIP} though, to decide which of two backend implementations to use.