develooper Front page | perl.beginners | Postings from February 2002

Re: array references

Thread Previous
From:
Johnathan Kupferer
Date:
February 13, 2002 14:46
Subject:
Re: array references
Message ID:
3C6AEC39.90804@gnuthought.com
Jon Serra wrote:

>Greetings,
>
>        I have an array, each element will contain a reference to another array. How 
>can I dynamically generate each of those references such that each reference is 
>unique. I am trying to create dynamic 2d arrays.  TIA JON
>
#
# The key is understanding 'my' and how perl's garbage collection works.
#
# Each time we enter a sub, my creates new variables and when we return
# a reference to those variables they are ours to keep (unlike C).
#
# The next time we reach the sub we will get new variables and the old
# will be unaffected.
#
my @array = (['a1','a2','a3'],['b1','b2','b3'],['c1','c2','c3']);
print_array(@array);

my @other_array = make_2d_array;
print_array(@other_array);

sub make_2d_array {
    my @array;
    # Sorry for using ++ on a string!  I couldn't resist.
    # $i = 'a';
    # ++$i;
    # now $i eq 'b'!!!
    push(@array,make_simple_array($i)) for(my $i='a';$i le 'c';++$i);
}

sub make_simple_array {
    my $rowlabel = shift;
    my @array = ();
    push(@array,$rowlabel.$i) for(my $i=1;$i<4;++$i);
    return \@array;
}

sub print_array {
    for my $arrayref (@_){
        for my $element (@$arrayref){
            print "$element\t";
        }
        print "\n";
    }   
}




Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About