Provided by: libperl-critic-freenode-perl_0.028-1_all bug


       Perl::Critic::Policy::Freenode::IndirectObjectNotation - Don't call methods indirectly


       Perl allows a form of method call where the method name is first, followed by the invocant
       (class or object to call the method on), then the argument list.  This is an unfortunate
       legacy syntax that should no longer be used. See "Indirect Object Syntax" in perlobj and
       "REFERENCES" in indirect for more information.

        my $obj = new My::Class @args;   # not ok
        my $obj = My::Class->new(@args); # ok

       It is difficult to detect indirect object notation by static analysis, so this policy only
       forbids the "new" method call by default, as it is highly unlikely to be the name of a
       standard subroutine call. Consider using the indirect pragma to cause the code to warn or
       die when indirect object notation is used.

       This policy is a subclass of the Perl::Critic core policy
       Perl::Critic::Policy::Objects::ProhibitIndirectSyntax, and performs the same function but
       in the "freenode" theme.


       This policy is part of Perl::Critic::Freenode.


       This policy can be configured, in the same way as its parent policy
       Perl::Critic::Policy::Objects::ProhibitIndirectSyntax, to attempt to forbid additional
       method names from being called indirectly. Be aware this may lead to false positives as it
       is difficult to detect indirect object notation by static analysis. The "new" subroutine
       is always forbidden in addition to these.

        forbid = create destroy


       Dan Book, ""


       Copyright 2015, Dan Book.

       This library is free software; you may redistribute it and/or modify it under the terms of
       the Artistic License version 2.0.


       Perl::Critic, indirect

perl v5.28.1                          Perl::Critic::Policy::Freenode::IndirectObjectNotation(3pm)