Hi all,
I am trying to make a perl code which would read a matrix (basically an
array which contains references to other arrays) and initialize a hash with
the first value of each dereferenced array acting as a key and remaining
elements as values using references.
The source code and output are mentioned below :-
Source Code
-----------------
[root]# cat k1.pl
#! /usr/bin/perl
use strict;
use warnings;
my @arr = (
[1, 2, 3, "a", "b"],
[4, 5, 6, "c", "d"],
[7, 8, 9, "e", "f"]
);
my @arr1;
my %h;
my $a;
my $key1;
my $i;
my $n;
print "Matrix is as follows :- \n";
foreach $a (@arr)
{
print "Row = @{$a}\n";
@arr1 = "";
$n = @{$a};
for ($i=1; $i<=$n-1;$i++)
{
$arr1[$i-1] = ${$a}[$i];
}
$h{ ${$a}[0] } = [EMAIL PROTECTED];
}
print "Hash is as follows :- \n";
foreach $key1 (keys %h)
{
print "Key -> [$key1] : Value -> [EMAIL PROTECTED]";
}
print "\n";
[root]#
Actual Output
-------------------
[root]# perl k1.pl
Matrix is as follows :-
Row = 1 2 3 a b
Row = 4 5 6 c d
Row = 7 8 9 e f
Hash is as follows :-
Key -> [4] : Value -> [8 9 e f]
Key -> [1] : Value -> [8 9 e f]
Key -> [7] : Value -> [8 9 e f]
[root]#
Expected Output
-------------------
[root]# perl k1.pl
Matrix is as follows :-
Row = 1 2 3 a b
Row = 4 5 6 c d
Row = 7 8 9 e f
Hash is as follows :-
Key -> [4] : Value -> [5 6 c d]
Key -> [1] : Value -> [2 3 a b]
Key -> [7] : Value -> [8 9 e f]
[root]#
Thanks & Regards,
Amit Saxena