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.