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

Re: array references

Thread Previous
Johnathan Kupferer
February 13, 2002 14:46
Re: array references
Message ID:
Jon Serra wrote:

>        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']);

my @other_array = make_2d_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 Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About