use strict; use warnings;
use Data::Dumper;
my @arr=({a=>1,b=>2},{a=>3,b=>4},{a=>5,b=>6});
print '$#arr :'.$#arr."\n";
print 'scalar(@arr):'.scalar(@arr)."\n";
print Dumper \@arr;
my @results = rvar('hash') . "\n";
print Dumper \@results;
print "Number of array elements: " . @results . "
\n";
my @results2 = rvar('arr') . "\n";
print Dumper \@results2;
print "Number of array elements: " . @results2 . "
\n";
sub rvar {
my $mode=shift;
my @arr=({a=>1,b=>2},{a=>3,b=>4},{a=>5,b=>6});
if ($#arr eq 2) {print "text eq works but weird\n"; }
if ($mode eq 'hash') {
my $hashRef = $arr[0];
return $hashRef;
}
elsif ($mode eq 'arr') {
my $arrayRef = \@arr;
return $arrayRef;
}
return 0;
}
####
$#arr :2
scalar(@arr):3
$VAR1 = [
{
'b' => 2,
'a' => 1
},
{
'b' => 4,
'a' => 3
},
{
'a' => 5,
'b' => 6
}
];
text eq works but weird
$VAR1 = [
'HASH(0x3f7f2c)
'
];
Number of array elements: 1
text eq works but weird
$VAR1 = [
'ARRAY(0xb321bc)
'
];
Number of array elements: 1