My Favorite Warnings: deprecated
The deprecated
warning is a grab-bag. Basically, anything that is deprecated causes this warning to be generated, and the list changes from release to release.
The only reason I can think of ever to turn this off is around a deprecated construction while you are actively working to eliminate it. Silencing it and then forgetting about it will bite you, eventually.
For the curious (and to run my word count, since otherwise this would be a really short blog entry), the current list of deprecations according to the 5.34.0 perldiag is:
- do "%s" failed, '.' is no longer in @INC; did you mean do "./%s"?
.
(the current directory) was removed from@INC
in Perl 5.26.- Use of "goto" to jump into a construct is deprecated
- This has been deprecated since Perl 5.12. No word that I know of on when it will actually be removed.
- Use of '%s' in \p{} or \P{} is deprecated because: %s
- This is emitted for deprecated Unicode properties. The only timetable on these is that they will be removed from Perl when the Unicode Consortium removes them from Unicode. Be warned.
- Use of tainted arguments in %s is deprecated
- This message is issued by
system()
andexec()
when you feed them tainted arguments. No word that I know of on when this will become fatal, but I am surprised it is not already.
Previous entries in this series:
From the perlpolicy definition of “deprecated”:
Lived reality on p5p doesn’t always align with the original intention of the policy, but that intention is outlined earlier in the same section:
Thanks. Features can also be removed if it turns out they present a security issue, such as
.
in@INC
.