+ module on. The policy to apply depends on what is first found in @opts :
+
+ * If it is a string that matches "/^:?fatal$/i", the compilation will
+ croak when the first indirect method call is found.
+
+ This option is mutually exclusive with the 'hook' option.
+
+ * If the key/value pair "hook => $hook" comes first, $hook will be
+ called for each error with a string representation of the object as
+ $_[0], the method name as $_[1], the current file as $_[2] and the
+ line number as $_[3]. If and only if the object is actually a block,
+ $_[0] is assured to start by '{'.
+
+ This option is mutually exclusive with the 'fatal' option.
+
+ * If none of "fatal" and "hook" are specified, a warning will be
+ emitted for each indirect method call.
+
+ * If @opts contains a string that matches "/^:?global$/i", the pragma
+ will be globally enabled for all code compiled after the current "no
+ indirect" statement, except for code that is in the lexical scope of
+ "use indirect". This option may come indifferently before or after
+ the "fatal" or "hook" options, in the case they are also passed to
+ "unimport".
+
+ The global policy applied is the one resulting of the "fatal" or
+ "hook" options, thus defaults to a warning when none of those are
+ specified :
+
+ no indirect 'global'; # warn for any indirect call
+ no indirect qw<global fatal>; # die on any indirect call
+ no indirect 'global', hook => \&hook # custom global action
+
+ Note that if another policy is installed by a "no indirect"
+ statement further in the code, it will overrule the global policy :
+
+ no indirect 'global'; # warn globally
+ {
+ no indirect 'fatal'; # throw exceptions for this lexical scope
+ ...
+ require Some::Module; # the global policy will apply for the
+ # compilation phase of this module
+ }