X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Fautovivification.git;a=blobdiff_plain;f=README;h=22adc68d4cc7432abfffecac801aea6e2e3158ca;hp=3588451e479fdf1c1bd69553dc9cbed3205f0469;hb=HEAD;hpb=9ef6276ffc1c3943d1b167876079649480efafd7 diff --git a/README b/README index 3588451..22adc68 100644 --- a/README +++ b/README @@ -2,7 +2,7 @@ NAME autovivification - Lexically disable autovivification. VERSION - Version 0.12 + 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,6 +160,10 @@ 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. @@ -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.