Revision history for autovivification
+0.04 2010-01-10 00:30 UTC
+ + Add : Array and hash slices are now handled by the pragma.
+ + Fix : Work around Kwalitee test misfailures.
+
0.03 2009-06-23 22:20 UTC
+ Add : Handle old-fashion dereferencing (like $$hashref{key}).
+ Chg : Aliasing constructs (for ($x{foo}) { ... }) are now covered by
--- #YAML:1.0
name: autovivification
-version: 0.03
+version: 0.04
abstract: Lexically disable autovivification.
author:
- Vincent Pit <perl@profvince.com>
build_requires:
ExtUtils::MakeMaker: 0
Test::More: 0
+ XSLoader: 0
requires:
perl: 5.008
XSLoader: 0
directory:
- t
- inc
-generated_by: ExtUtils::MakeMaker version 6.52
+generated_by: ExtUtils::MakeMaker version 6.56
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: 1.4
+dynamic_config: 1
autovivification - Lexically disable autovivification.
VERSION
- Version 0.03
+ Version 0.04
SYNOPSIS
no autovivification;
Turn off autovivification for rvalue dereferencing expressions, such
as "$value = $hashref->{key}[$idx]{$field}", "keys
- %{$hashref->{key}}" or "values %{$hashref->{key}}". When the
- expression would have autovivified, "undef" is returned for a plain
- fetch, while "keys" and "values" return 0 in scalar context and the
- empty list in list context.
+ %{$hashref->{key}}" or "values %{$hashref->{key}}". Starting from
+ perl 5.11, it also covers "leys" and "values" on array references.
+ When the expression would have autovivified, "undef" is returned for
+ a plain fetch, while "keys" and "values" return 0 in scalar context
+ and the empty list in list context.
* 'exists'
When @opts is empty, it defaults to restoring the original Perl
autovivification behaviour.
+CAVEATS
+ 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's discouraged
+ as the slice is here useless since the dereferencing enforces scalar
+ context. If warnings are turned on, Perl will complain about one-element
+ slices.
+
DEPENDENCIES
perl 5.8.
Matt S. Trout asked for it.
COPYRIGHT & LICENSE
- Copyright 2009 Vincent Pit, all rights reserved.
+ Copyright 2009,2010 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.