warnings − Perl pragma to control optional warnings
use warnings; no warnings; use warnings "all"; no warnings "all"; use warnings::register; if (warnings::enabled()) { warnings::warn("some warning"); } if (warnings::enabled("void")) { warnings::warn("void", "some warning"); } if (warnings::enabled($object)) { warnings::warn($object, "some warning"); } warnings::warnif("some warning"); warnings::warnif("void", "some warning"); warnings::warnif($object, "some warning");
The "warnings" pragma is a replacement for the command line flag "−w", but the pragma is limited to the enclosing block, while the flag is global. See perllexwarn for more information and the list of built-in warning categories.
If no import list is supplied, all possible warnings are either enabled or disabled.
A number of
functions are provided to assist module authors.
use warnings::register
Creates a new warnings category with the same name as the package where the call to the pragma is used.
warnings::enabled()
Use the warnings category with the same name as the current package.
Return TRUE if that warnings category is enabled in the calling module. Otherwise returns FALSE .
warnings::enabled($category)
Return TRUE if the warnings category, $category, is enabled in the calling module. Otherwise returns FALSE .
warnings::enabled($object)
Use the name of the class for the object reference, $object, as the warnings category.
Return TRUE if that warnings category is enabled in the first scope where the object is used. Otherwise returns FALSE .
warnings::fatal_enabled()
Return TRUE if the warnings category with the same name as the current package has been set to FATAL in the calling module. Otherwise returns FALSE .
warnings::fatal_enabled($category)
Return TRUE if the warnings category $category has been set to FATAL in the calling module. Otherwise returns FALSE .
warnings::fatal_enabled($object)
Use the name of the class for the object reference, $object, as the warnings category.
Return TRUE if that warnings category has been set to FATAL in the first scope where the object is used. Otherwise returns FALSE .
warnings::warn($message)
Print $message to STDERR .
Use the warnings category with the same name as the current package.
If that warnings category has been set to " FATAL " in the calling module then die. Otherwise return.
warnings::warn($category, $message)
Print $message to STDERR .
If the warnings category, $category, has been set to " FATAL " in the calling module then die. Otherwise return.
warnings::warn($object, $message)
Print $message to STDERR .
Use the name of the class for the object reference, $object, as the warnings category.
If that warnings category has been set to " FATAL " in the scope where $object is first used then die. Otherwise return.
warnings::warnif($message)
Equivalent to:
if (warnings::enabled()) { warnings::warn($message) }
warnings::warnif($category, $message)
Equivalent to:
if (warnings::enabled($category)) { warnings::warn($category, $message) }
warnings::warnif($object, $message)
Equivalent to:
if (warnings::enabled($object)) { warnings::warn($object, $message) }
warnings::register_categories(@names)
This registers warning categories for the given names and is primarily for use by the warnings::register pragma, for which see perllexwarn.
See "Pragmatic Modules" in perlmodlib and perllexwarn.