The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Tie::Hash::Vivify - Create hashes that autovivify in interesting ways.

SYNOPSIS

    use Tie::Hash::Vivify;

    my $default = 0;
    tie my %hash => 'Tie::Hash::Vivify', sub { "default" . $default++ };
    print $hash{foo};   # default0
    print $hash{bar};   # default1
    print $hash{foo};   # default0
    $hash{baz} = "hello";
    print $hash{baz};   # hello

    my $hashref = Tie::Hash::Vivify->new(sub { "default" });
    $hashref->{foo};    # default
    # ...

DESCRIPTION

This module implements a hash where if you read a key that doesn't exist, it will call a code reference to fill that slot with a value.

You can either tie to the Tie::Hash::Vivify package:

    tie my %hash => 'Tie::Hash::Vivify', sub { "my default" };

Or you can create a new anonymous reference to a Tie::Hash::Vivify hash:

    my $hashref = Tie::Hash::Vivify->new(sub { "my default" });

AUTHOR

Luke Palmer, lrpalmer gmail com

COPYRIGHT AND LICENSE

Copyright (C) 2005 by Luke Palmer

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.