Simon Wistow

NAME

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

SYNOPSIS

    use Text::Sequence;
    
    my @list      = get_files_in_dir();
    my ($sequences, $singletons) = Text::Sequence::find($somedir);


    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 )

    my ($sequences, $singletons) = Text::Sequence::find($somedir);

A static method to find all the sequences in a list of elements. Both are returned as arrayrefs.

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().

in( $string)

Tells you whether a particular string is in this sequence.

re

Returns the regular expression used to determine whether something is in the sequence or not.

AUTHOR

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

COPYRIGHT

Copyright (c) 2004 - Simon Wistow

BUGS

Can't insist on sequences being contiguous (yet).

SEE ALSO