X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Findirect.git;a=blobdiff_plain;f=README;h=fa7c71bfd5c00cd4f18271b6d97c8c1d53c23250;hp=d159e058b808da301add4aee6b5c44498c38ea25;hb=206be5711384ca587b0a022ba93a5fc602d3c03d;hpb=3b44f9a3fae78d28cca0d025de25048f5a423210 diff --git a/README b/README index d159e05..fa7c71b 100644 --- a/README +++ b/README @@ -2,7 +2,7 @@ NAME indirect - Lexically warn about using the indirect method call syntax. VERSION - Version 0.28 + Version 0.37 SYNOPSIS In a script : @@ -41,10 +41,9 @@ DESCRIPTION The indirect syntax is now considered harmful, since its parsing has many quirks and its use is error prone : when the subroutine "foo" has not been declared in the current package, "foo $x" actually compiles to - "$x->foo", and "foo { key => 1 }" to "'key'->foo(1)". In - , - Matt S. Trout gives an example of an undesirable indirect method call on - a block that can cause a particularly bewildering error. + "$x->foo", and "foo { key => 1 }" to "'key'->foo(1)". Please refer to + the "REFERENCES" section for a more complete list of reasons for + avoiding this construct. This pragma currently does not warn for core functions ("print", "say", "exec" or "system"). This may change in the future, or may be added as @@ -173,13 +172,31 @@ CAVEATS The search for indirect method calls happens before constant folding. Hence "my $x = new Class if 0" will be caught. +REFERENCES + Numerous articles have been written about the quirks of the indirect + object construct : + + * : Far More Than + Everything You've Ever Wanted to Know about the Indirect Object + syntax, Tom Christiansen, 1998-01-28. + + This historical post to the "perl5-porters" mailing list raised + awareness about the perils of this syntax. + + * : Indirect but still fatal, Matt S. Trout, 2009-07-29. + + In this blog post, the author gives an example of an undesirable + indirect method call on a block that causes a particularly + bewildering error. + DEPENDENCIES perl 5.8.1. A C compiler. This module may happen to build with a C++ compiler as well, but don't rely on it, as no guarantee is made in this regard. - Carp (standard since perl 5), XSLoader (since perl 5.006). + Carp (standard since perl 5), XSLoader (since perl 5.6.0). AUTHOR Vincent Pit, "", . @@ -198,9 +215,6 @@ SUPPORT perldoc indirect - Tests code coverage report is available at - . - ACKNOWLEDGEMENTS Bram, for motivation and advices. @@ -208,8 +222,8 @@ ACKNOWLEDGEMENTS reporting issues. COPYRIGHT & LICENSE - Copyright 2008,2009,2010,2011,2012,2013 Vincent Pit, all rights - reserved. + Copyright 2008,2009,2010,2011,2012,2013,2014,2015,2016 Vincent Pit, all + rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.