X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Fautovivification.git;a=blobdiff_plain;f=README;h=22adc68d4cc7432abfffecac801aea6e2e3158ca;hp=7d750e7808d1437e2e9f1ff45299340f0d8e37cf;hb=HEAD;hpb=657fc8fb598f0e7aa7d0ffcef45a95522e302b0c diff --git a/README b/README index 7d750e7..22adc68 100644 --- a/README +++ b/README @@ -2,7 +2,7 @@ NAME autovivification - Lexically disable autovivification. VERSION - Version 0.11 + Version 0.18 SYNOPSIS no autovivification; @@ -36,8 +36,8 @@ METHODS "unimport" no autovivification; # defaults to qw no autovivification qw; - no autovivification 'warn'; - no autovivification 'strict'; + no autovivification warn => @categories; + no autovivification strict => @categories; Magically called when "no autovivification @opts" is encountered. Enables the features given in @opts, which can be : @@ -101,11 +101,21 @@ METHODS * 'warn' - Emits a warning when an autovivification is avoided. + Emits a warning when an autovivification is avoided for the + categories specified in @opts. + + Note that "no autovivification 'warn'" currently does nothing by + itself, in particular it does not make the default categories warn. + This behaviour may change in a future version of this pragma. * 'strict' - Throws an exception when an autovivification is avoided. + Throws an exception when an autovivification is avoided for the + categories specified in @opts. + + Note that "no autovivification 'strict'" currently does nothing by + itself, in particular it does not make the default categories die. + This behaviour may change in a future version of this pragma. Each call to "unimport" adds the specified features to the ones already in use in the current lexical scope. @@ -138,6 +148,11 @@ CONSTANTS where it is false for perl 5.10.0 and below. CAVEATS + Using this pragma will cause a slight global slowdown of any subsequent + compilation phase that happens anywere in your code - even outside of + the scope of use of "no autovivification" - which may become noticeable + if you rely heavily on numerous calls to "eval STRING". + The pragma doesn't apply when one dereferences the returned value of an array or hash slice, as in "@array[$id]->{member}" or @hash{$key}->{member}. This syntax is valid Perl, yet it is discouraged @@ -145,13 +160,17 @@ CAVEATS context. If warnings are turned on, Perl will complain about one-element slices. + Autovivifications that happen in code "eval"'d during the global + destruction phase of a spawned thread or pseudo-fork (the processes used + internally for the "fork" emulation on Windows) are not reported. + DEPENDENCIES perl 5.8.3. 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. - XSLoader (standard since perl 5.006). + XSLoader (standard since perl 5.6.0). SEE ALSO perlref. @@ -173,14 +192,12 @@ SUPPORT perldoc autovivification - Tests code coverage report is available at - . - ACKNOWLEDGEMENTS Matt S. Trout asked for it. COPYRIGHT & LICENSE - Copyright 2009,2010,2011,2012,2013 Vincent Pit, all rights reserved. + Copyright 2009,2010,2011,2012,2013,2014,2015,2017 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.