X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FPerl%2FCritic%2FPolicy%2FDynamic%2FNoIndirect.pm;h=74d3430fcf0ceb0af6bc43552687d0a62f4a6346;hb=58a9ffe8438fadf107b8414ca71b1e691860027c;hp=3769d30fd9c7d084336710312b8b34e0493d4508;hpb=b9f3c06e4b9574e706c62e7645a9236b37b26953;p=perl%2Fmodules%2FPerl-Critic-Policy-Dynamic-NoIndirect.git diff --git a/lib/Perl/Critic/Policy/Dynamic/NoIndirect.pm b/lib/Perl/Critic/Policy/Dynamic/NoIndirect.pm index 3769d30..74d3430 100644 --- a/lib/Perl/Critic/Policy/Dynamic/NoIndirect.pm +++ b/lib/Perl/Critic/Policy/Dynamic/NoIndirect.pm @@ -118,7 +118,7 @@ sub violates_dynamic { =head1 CAVEATS -The uses of the L pragma inside the auditted code take precedence over this policy. +The uses of the L pragma inside the audited code take precedence over this policy. Hence no violations will be reported for indirect method calls that are located inside the lexical scope of C or C<< no indirect hook => ... >>. Occurrences of C won't be a problem. @@ -132,6 +132,13 @@ L, L. L. +=head1 SEE ALSO + +L is a L policy that statically checks for indirect constructs. +But to be static it has to be very restricted : you have to manually specify which subroutine names are methods for which the indirect form should be forbidden. +This can lead to false positives (a subroutine with the name you gave is defined in the current scope) and negatives (indirect constructs for methods you didn't specify). +But you don't need to actually compile (or run, as it's more or less the same thing) the code. + =head1 AUTHOR Vincent Pit, C<< >>, L.