Tie::Counter - Have a counter in a scalar.


Tie-Counter documentation Contained in the Tie-Counter distribution.

Index


Code Index:

NAME

Top

Tie::Counter - Have a counter in a scalar.

SYNOPSIS

Top

    use Tie::Counter;

    tie my $counter => 'Tie::Counter';

    my @array = qw /Red Green Blue/;

    foreach my $colour (@array) {           # Prints:
        print "  $counter  $colour\n";      #   0  Red
    }                                       #   1  Green
                                            #   2  Blue

DESCRIPTION

Top

Tie::Counter allows you to tie a scalar in such a way that it increments each time it is used. This might be useful for interpolating counters in strings.

The tie takes an optional extra argument, the first value of the counter, defaulting to 0. Any argument for which magical increment is defined on is allowed. Assigning to the counter will set a new value.

DEVELOPMENT

Top

The current sources of this module are found on github, git://github.com/Abigail/tie--counter.git.

AUTHOR

Top

Abigail <test-regexp@abigail.be>.

COPYRIGHT and LICENSE

Top


Tie-Counter documentation Contained in the Tie-Counter distribution.

package Tie::Counter;

use 5.006;

use strict;
use warnings;
no  warnings 'syntax';

our $VERSION = '2009110701';


sub TIESCALAR {
    my $class     =   shift;
    my $value     =   shift;  #  ?? 0;  # Would have been nice....
       $value     =   0 unless defined $value;
    bless \$value => $class;
}

sub FETCH     {
    ${+shift} ++;
}

sub STORE     {
    my $self  = shift;
    my $value = shift;
    $$self    = $value;
}


"End of Tie::Counter";

__END__