oo-array.txt

package Foo;

BEGIN {
    my $i    = 0;
    my @keys = qw/NAME AGE ADDRESS/;
    for my $sub (@keys) {
        *$sub = sub { $i };
        $i++;
    }
}

sub new {
    my $class = shift;
    my @info  = ("my name", "my age", "my address");
    return bless \@info, $class;
}

sub get_name {
    return shift->[NAME];
}

sub get_age {
    return shift->[AGE];
}

sub get_address {
    return shift->[ADDRESS];
}

1;

#=============================================================================

package Foo;

{
    no strict;
    my $i    = 0;
    my @keys = qw/NAME AGE ADDRESS/;
    for my $sub (@keys) {
        ${$constant} = $i;
        $i++;
    }
}

sub new {
    my $class = shift;
    my @info  = ("my name", "my age", "my address");
    return bless \@info, $class;
}

sub get_name {
    return shift->[$NAME];
}

sub get_age {
    return shift->[$AGE];
}

sub get_address {
    return shift->[$ADDRESS];
}

1;