NAME

Text::Sequence - spot one-dimensional sequences in patterns of text

SYNOPSIS

use Text::Sequence;

my @list      = get_files_in_dir();
my @sequences = Text::Sequence::find(@list);

my $sequence  = @sequences[0];
print $sequence->template();

my $num = 0;    
foreach my ($element) ($sequence->members()) {
    ++$num;
    print "$num) $filename\n";
}

DESCRIPTION

A sequence could be a list of files like

00001.jpg
00002.jpg
00003.jpg
...
05000.jpg

or

raw.0001.txt
...
raw.0093.txt

or

foo3a.html
foo3b.html
foo3c.html

or even

1.mp3
100.mp3

in which case their templates would be

%.5d.tif

raw.%.4d.txt

foo3%s.html

%d.mp3

respectively.

This library will attempt to

find all sequences in a given list
tell you which elements are missing from a sequence
be able to cope with non padded numbers in sequences

It does not spot multi-dimensional sequences, e.g. foo-%d-%d.jpg.

METHODS

find( @elements )

A static method to find all the sequences in a list of elements.

new( $template, @member_nums )

Creates a new sequence object.

template( $number_or_letter )

Tell you the template of the sequence, in printf-like formats.

If you pass in a number or letter then it will substitute it in to return an actual sequence element.

members()

Returns a list describing the members of the sequence. Each item in the list is a letter or (non-padded) number which can be substituted into the template to obtain the original element

For members of the same width, order is preserved from the original call to find().

AUTHOR

Simon Wistow <simon@thegestalt.org> Adam Spiers <cpan@adamspiers.org>

COPYRIGHT

Copyright (c) 2004 - Simon Wistow

BUGS

SEE ALSO