NAME

String::Incremental::Char

SYNOPSIS

use String::Incremental::Char;

my $ch = String::Incremental::Char->new( order => 'abcd' );

print "$ch";  # -> 'a';

$ch++; $ch++; $ch++;
print "$ch";  # -> 'd';

$ch++;  # dies

my $ch1 = String::Incremental::Char->new( order => ['a'..'c'] );
my $ch2 = String::Incremental::Char->new( order => ['x'..'z'], upper => $ch1 );

print "${ch1}${ch2}";  # -> ax

$ch2++; $ch2++;
print "${ch1}${ch2}";  # -> az

$ch2++;
print "${ch1}${ch2}";  # -> bx

$ch1++;
print "${ch1}${ch2}";  # -> cx

...

print "${ch1}${ch2}";  # -> cz
$ch2++;  # dies

DESCRIPTION

String::Incremental::Char is ...

CONSTRUCTORS

new( %args ) : String::Incremental::Char

%args:

order : Str|ArrayRef

incrementation rule

upper : String::Incremental::Char

upper-digit char as String::Incremental::Char instance

METHODS

as_string() : Str

returns "current" character.

following two variables are equivalent:

my $a = $ch->as_string();
my $b = "$ch";
set( $val, \%opts ) : String::Incremental::Char

sets "current" state as $val.

if $opts->{test} is true, "current" state is not update, only returns or dies.

increment() : Str

increases position of order and returns its character.

following two operation are equivalent:

$ch->increment();
$ch++;
decrement() : Str

decreases position of order and returns its character.

following two operation are equivalent:

$ch->decrement();
$ch--;

LICENSE

Copyright (C) issm.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

issm <issmxx@gmail.com>