package autovivification;
-use 5.008001;
+use 5.008003;
use strict;
use warnings;
=head1 VERSION
-Version 0.06
+Version 0.07
=cut
our $VERSION;
BEGIN {
- $VERSION = '0.06';
+ $VERSION = '0.07';
}
=head1 SYNOPSIS
$hashref->{$key} = $value
for ($arrayref->[$idx]) { ... }
for ($hashref->{$key}) { ... }
+ function($arrayref->[$idx])
+ function($hashref->{$key})
An exception is thrown if vivification is needed to store the value, which means that effectively you can only assign to levels that are already defined
In the example, this would require C<$arrayref> (resp. C<$hashref>) to already be an array (resp. hash) reference.
Each call to C<unimport> adds the specified features to the ones already in use in the current lexical scope.
-When C<@opts> is empty, it defaults to C<qw/fetch exists delete/>.
+When C<@opts> is empty, it defaults to C<< qw<fetch exists delete> >>.
=cut
sub unimport {
shift;
my $hint = _detag($^H{+(__PACKAGE__)}) || 0;
- @_ = qw/fetch exists delete/ unless @_;
+ @_ = qw<fetch exists delete> unless @_;
$hint |= $bits{$_} for grep exists $bits{$_}, @_;
$^H |= 0x00020000;
$^H{+(__PACKAGE__)} = _tag($hint);
=head1 DEPENDENCIES
-L<perl> 5.8.1.
+L<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.
L<XSLoader> (standard since perl 5.006).