SriSri
SriSri

Reputation: 95

How to return a array with a given name in Perl

I have lot of arrays saved as data for my automation , now i need have one method which will return an array with a given name .How can i do that. Kindly help .

#!/usr/bin/perl -w
use strict;

my @array1 = (1..4);

sub retArray {
    my $arr = shift;
    print $arr;
    ##Here i need to get the array with String which i got from args 
}

my @arrayReturned = retArray('array1');

use Data::Dumper;

print "\n";
print Dumper(\@array1);

Thanks in advance

Upvotes: 0

Views: 66

Answers (2)

RobEarl
RobEarl

Reputation: 7912

Put the array in a hash:

my %arrays = ( 'array1' => [1..4] );

sub retArray {
    my $array_name = shift;
    return @{$arrays{$array_name}};
}

A list may be more appropriate, see: How can I use a variable as a variable name in Perl?

my @arrays;
push @arrays, \@array1;
push @arrays, \@array2;

sub retArray {
    my $array_num = shift;
    return @{$arrays[$array_num]};
}

Upvotes: 2

sateesh
sateesh

Reputation: 28693

Create a hash with the array name as a key and value an anon array ref containing the values you want.

Say something like:

my %map_array_ref;
$map_array_ref{'array1'} = [1,2,3];

Upvotes: 1

Related Questions