Peter Corlett

NAME

Acme::Globule::Range - Alternative range operator

VERSION

version 0.004

SYNOPSIS

 use Acme::Globule qw( Range );

 foreach (<10..1>) {
   print "$_... ";
 }
 print "Lift-off!\n";

 # put down that crack pipe...
 sub my_keys(\%) {
   my @hash = %{ $_[0] };
  return @hash[ glob("0,2..$#hash") ];
 }

 sub my_values(\%) {
   my @hash = %{ $_[0] };
  return @hash[ glob("1,3..$#hash") ];
 }

DESCRIPTION

This is a Acme::Globule plugin that makes glob() do range operations. The following range formats are supported:

A..Z

Returns the integers between A and Z. If Z is lower than A, this will return a reversed range. Thus <1..9> is (1..9) and <9..1> is (reverse 1..9).

A,B..Z

Returns the integers between A and Z with a step such that the second value is B. Thus <1,3..9> is (1, 3, 5, 7, 9).

A..Y,Z

Returns the integers between A and Z with a step such that the next to last value is Y. Thus <1..7,9> is (1, 3, 5, 7, 9).

Any other string will fall through to the next plugin.

METHODS

globule

The implementation of the range operator. You should never need to call this directly.

BUGS

The syntax is rather rigid.

SEE ALSO

List::Maker which supports a wider range (*groan*) of syntax but affects glob() globally.

AUTHOR

Peter Corlett <abuse@cabal.org.uk>

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Peter Corlett.

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