table of contents
Perl::Critic::Policy::Community::AmpersandSubCalls(3pm) | User Contributed Perl Documentation | Perl::Critic::Policy::Community::AmpersandSubCalls(3pm) |
NAME¶
Perl::Critic::Policy::Community::AmpersandSubCalls - Don't use & to call subroutines
DESCRIPTION¶
Ampersands ("&") were once needed to call subroutines, but in modern Perl they are not only unnecessary but actually change the behavior from what you may expect. Calling a subroutine with an ampersand ignores the subroutine's prototype if any, which may change what arguments the subroutine receives. Additionally, calling a subroutine as "&foo;" with no arguments will pass on the contents of @_ from the current subroutine, which may be quite surprising. Unless used intentionally for this behavior, the ampersand should simply be omitted.
my $value = &foo(); # not ok my $sum = &foo(1,2); # not ok my $value = foo(); # ok my $sum = foo 1,2; # ok
This policy is a subclass of the core policy Perl::Critic::Policy::Subroutines::ProhibitAmpersandSigils, and performs the same function but in the "community" theme.
AFFILIATION¶
This policy is part of Perl::Critic::Community.
CONFIGURATION¶
This policy is not configurable except for the standard options.
AUTHOR¶
Dan Book, "dbook@cpan.org"
COPYRIGHT AND LICENSE¶
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.
SEE ALSO¶
Perl::Critic
2022-07-25 | perl v5.40.0 |