Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Perl::Critic::Policy::User:ContributedlPerl:DocumentatiohibitIndirectSyntax(3)

NAME
       Perl::Critic::Policy::Objects::ProhibitIndirectSyntax - Prohibit
       indirect	object call syntax.

AFFILIATION
       This Policy is part of the core Perl::Critic distribution.

DESCRIPTION
       Indirect	object syntax is commonly used in other	object-oriented
       languages for instantiating objects. Perl allows	this, but to say that
       it supports it may be going too far. Instead of writing

	   my $foo = new Foo;

       it is preferable	to write

	   my $foo = Foo->new;

       The problem is that Perl	needs to make a	number of assumptions at
       compile time to disambiguate the	first form, so it tends	to be fragile
       and to produce hard-to-track-down bugs.

CONFIGURATION
       Indirect	object syntax is also hard for Perl::Critic to disambiguate,
       so this policy only checks certain subroutine calls. The	names of the
       subroutines can be configured using the "forbid"	configuration option:

	   [Objects::ProhibitIndirectSyntax]
	   forbid = create destroy

       The "new" subroutine is configured by default; any additional "forbid"
       values are in addition to "new".

CAVEATS
       The general situation can not be	handled	via static analysis.

SEE ALSO
       Perl::Critic::Policy::Dynamic::NoIndirect and indirect both do a	better
       job with	this, but they require that you	compile/execute	your code.

AUTHOR
       Thomas R. Wyant,	III wyant at cpan dot org

COPYRIGHT
       Copyright (c) 2009-2011 Tom Wyant.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.  The full text of this license can
       be found	in the LICENSE file included with this module.

perl v5.24.1	      Perl::Critic::Policy::Objects::ProhibitIndirectSyntax(3)

NAME | AFFILIATION | DESCRIPTION | CONFIGURATION | CAVEATS | SEE ALSO | AUTHOR | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Perl::Critic::Policy::Objects::ProhibitIndirectSyntax&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help