Alfie John > Scalar-Array-0.02 > Scalar::Array

Download:
Scalar-Array-0.02.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.02   Source  

NAME ^

Scalar::Array - Turns arrayrefs into iterators

SYNOPSIS ^

  use Scalar::Array;

  my $rr_ref = [ 1, 2, 3, 4, 5 ];

  round_robin( $rr_ref );
  print sa_length( $rr_ref ); # prints 5

  print $rr_ref,"\n"; # prints 1
  print $rr_ref,"\n"; # prints 2
  print $rr_ref,"\n"; # prints 3
  print $rr_ref,"\n"; # prints 4
  print $rr_ref,"\n"; # prints 5
  print $rr_ref,"\n"; # prints 1
  print $rr_ref,"\n"; # prints 2
  print $rr_ref,"\n"; # prints 3
  ...

  my $s_ref = [ 1, 2, 3, 4, 5 ];

  shrink( $s_ref );
  print sa_length( $s_ref ); # prints 5

  print $s_ref,"\n"; # prints 1
  print $s_ref,"\n"; # prints 2
  print $s_ref,"\n"; # prints 3
  print $s_ref,"\n"; # prints 4
  print $s_ref,"\n"; # prints 5
  print $s_ref,"\n"; # undef
  print $s_ref,"\n"; # undef
  print $s_ref,"\n"; # undef

DESCRIPTION ^

Scalar::Array will turn any arrayref into an iterator by simply using the arrayref itself. Only reading is currently implemented.

round_robin

        round_robin( $arrayref );

Turn the passed in arrayref into a round robin iterator. At each iteration, we shift off the next value and then push back on the other end. See SYNOPSIS for the example.

shrink

        shrink( $arrayref );

Turn the passed in arrayref into a shrinking iterator. At each iteration, we shift off the next value, but don't push back on the other end. In other words, the arrayref will shrink on each read.

        printf "Arrayref has %d items\n", sa_length( $arrayref );

Return the number of items in the arrayref.

BUGS ^

This did seem like a good idea at the time. Now I'm not so sure.

AUTHOR ^

Alfie John, <alfie@h4c.kr>

COPYRIGHT AND LICENSE ^

Copyright (C) 2010 by Alfie John

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available.

syntax highlighting: