Reputation: 95
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
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
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