Hi folks,<br><br>I had to scratch that itch...<br><br>I&#39;ve just uploaded it to CPAN now, so it might take a while to replicate. For a sneak peak:<br><br>  <a href="http://h4c.kr/Scalar-Array-0.02.tar.gz">http://h4c.kr/Scalar-Array-0.02.tar.gz</a><br>
<br>Scalar::Array will turn any arrayref into an iterator by simply using<br>the arrayref itself. Only reading is currently implemented (for now).<br><br>-- 8&lt; --<br><br>SYNOPSIS<br><br>  use Scalar::Array;<br><br>  my $rr_ref = [ 1, 2, 3, 4, 5 ];<br>
<br>  round_robin( $rr_ref );<br>  print sa_length( $rr_ref ); # prints 5<br><br>  print $rr_ref,&quot;\n&quot;; # prints 1<br>  print $rr_ref,&quot;\n&quot;; # prints 2<br>  print $rr_ref,&quot;\n&quot;; # prints 3<br>  print $rr_ref,&quot;\n&quot;; # prints 4<br>
  print $rr_ref,&quot;\n&quot;; # prints 5<br>  print $rr_ref,&quot;\n&quot;; # prints 1<br>  print $rr_ref,&quot;\n&quot;; # prints 2<br>  print $rr_ref,&quot;\n&quot;; # prints 3<br>  ... <br><br>  my $s_ref = [ 1, 2, 3, 4, 5 ];<br>
<br>  shrink( $s_ref );<br>  print sa_length( $s_ref ); # prints 5<br><br>  print $s_ref,&quot;\n&quot;; # prints 1<br>  print $s_ref,&quot;\n&quot;; # prints 2<br>  print $s_ref,&quot;\n&quot;; # prints 3<br>  print $s_ref,&quot;\n&quot;; # prints 4<br>
  print $s_ref,&quot;\n&quot;; # prints 5<br>  print $s_ref,&quot;\n&quot;; # undef<br>  print $s_ref,&quot;\n&quot;; # undef<br>  print $s_ref,&quot;\n&quot;; # undef<br><br>-- &gt;8 --<br><br>I would be interested in how this benchmarks compared to the previous threads but it&#39;s now 2:30am so I&#39;m going to bed :)<br>
<br>Alfie<br><br><div class="gmail_quote">On Fri, Feb 19, 2010 at 10:38 PM, Shlomi Fish <span dir="ltr">&lt;<a href="mailto:shlomif@iglu.org.il">shlomif@iglu.org.il</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Friday 19 Feb 2010 10:04:35 Jacinta Richardson wrote:<br>
<div class="im">&gt; Sam Watkins wrote:<br>
&gt; &gt; Also, is there any way to make like an alias @foo<br>
&gt;<br>
&gt; &gt; for @$foo, so you can treat an array reference as a normal array without<br>
&gt; &gt; writing @$foo all the time?  (and also for hashes)<br>
&gt;<br>
&gt; Not in Perl 5.  Yes, in Perl 6.<br>
&gt;<br>
<br>
</div>Actually, it is possible in Perl 5 - using tie:<br>
<br>
-------- CODE ------<br>
<br>
#!/usr/bin/perl<br>
<br>
use strict;<br>
use warnings;<br>
<br>
package Tie::ArrayIndirect;<br>
<br>
use base &#39;Tie::Array&#39;;<br>
<br>
sub TIEARRAY<br>
{<br>
    my ($class, $ref) = @_;<br>
<br>
    return bless {&#39;ref&#39; =&gt; $ref} , $class;<br>
}<br>
<br>
sub FETCH<br>
{<br>
    my ($self, $index) = @_;<br>
    return $self-&gt;{&#39;ref&#39;}-&gt;[$index];<br>
}<br>
<br>
sub FETCHSIZE<br>
{<br>
    my ($self) = @_;<br>
<br>
    return scalar(@{$self-&gt;{&#39;ref&#39;}});<br>
}<br>
<br>
sub STORE<br>
{<br>
    my ($self, $index, $val) = @_;<br>
<br>
    return ($self-&gt;{&#39;ref&#39;}-&gt;[$index] = $val);<br>
}<br>
<br>
sub EXISTS<br>
{<br>
    my ($self, $index) = @_;<br>
<br>
    return exists($self-&gt;{&#39;ref&#39;}-&gt;[$index]);<br>
}<br>
<br>
sub DELETE<br>
{<br>
    my ($self, $index) = @_;<br>
<br>
    return delete($self-&gt;{&#39;ref&#39;}-&gt;[$index]);<br>
}<br>
<br>
package main;<br>
<br>
sub return_ref<br>
{<br>
    return [0,1,22,303];<br>
}<br>
<br>
my $ref = return_ref();<br>
<br>
my @array;<br>
<br>
tie @array, &#39;Tie::ArrayIndirect&#39;, $ref;<br>
<br>
print &quot;array[2] = &quot; . $array[2] . &quot;\n&quot;;<br>
<br>
push @array, 4444.4;<br>
<br>
print &quot;ref-&gt;[4] = &quot;, $ref-&gt;[4], &quot;\n&quot;;<br>
<br>
----- END CODE -----<br>
<br>
Regards,<br>
<br>
        Shlomi Fish<br>
<br>
--<br>
-----------------------------------------------------------------<br>
Shlomi Fish       <a href="http://www.shlomifish.org/" target="_blank">http://www.shlomifish.org/</a><br>
What Makes Software Apps High Quality -  <a href="http://shlom.in/sw-quality" target="_blank">http://shlom.in/sw-quality</a><br>
<br>
Deletionists delete Wikipedia articles that they consider lame.<br>
Chuck Norris deletes deletionists whom he considers lame.<br>
<br>
Please reply to list if it&#39;s a mailing list post - <a href="http://shlom.in/reply" target="_blank">http://shlom.in/reply</a> .<br>
<div><div></div><div class="h5">_______________________________________________<br>
Melbourne-pm mailing list<br>
<a href="mailto:Melbourne-pm@pm.org">Melbourne-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/melbourne-pm" target="_blank">http://mail.pm.org/mailman/listinfo/melbourne-pm</a><br>
</div></div></blockquote></div><br>