meow00
asked on
passing a 2D array.
Hi experts,
I have main.pl and test.pl as follows. In test.pl, there are fun1 and fun2. My fun1 works fine, but my fun2 was not working. Basically, I want both fun1 and fun2 be able to get the array properly. Does anyone know what I missed in fun2? Thanks!
main.pl
-------------------------- ---------- ----------
#!/usr/bin/perl -w
require "test.pl";
$data[0][0] = 1.0;
$data[0][1] = 11.0;
$data[0][2] = 111.0;
$data[1][0] = 2.0;
$data[1][1] = 22.0;
$data[1][2] = 222.0;
@newData1 = fun1(@data);
print "Test1 "
. $newData1[1][0] . " "
. $newData1[1][1] . " "
. $newData1[1][2];
########################## #####
@newData2 = fun2(@data,2);
print "Test2 "
. $newData2[1][0] . " "
. $newData2[1][1] . " "
. $newData2[1][2];
-------------------------- ---------- ----
test.pl
---------------
#!/usr/bin/perl -w
sub fun1 {
@data = @_;
print "Row Number = " . @data . "\n";
print "Column Number = " . @{ $data[0] } . "\n";
print "Data Item [1][1] = " . $data[1][1] . "\n";
$numRow = @data;
$numCol = @{ $data[0] };
for ( $i = 0 ; $i < $numRow ; $i++ ) {
for ( $j = 0 ; $j < $numCol ; $j++ ) {
print $data[$i][$j] . " ";
}
print "\n";
}
return @data;
}
sub fun2 {
@data = @{$_[0]} ;
print "Row Number = " . @data . "\n";
print "Column Number = " . @{ $data[0] } . "\n";
print "Data Item [1][1] = " . $data[1][1] . "\n";
$numRow = @data;
$numCol = @{ $data[0] };
for ( $i = 0 ; $i < $numRow ; $i++ ) {
for ( $j = 0 ; $j < $numCol ; $j++ ) {
print $data[$i][$j] . " ";
}
print "\n";
}
return @data;
}
1;
I have main.pl and test.pl as follows. In test.pl, there are fun1 and fun2. My fun1 works fine, but my fun2 was not working. Basically, I want both fun1 and fun2 be able to get the array properly. Does anyone know what I missed in fun2? Thanks!
main.pl
--------------------------
#!/usr/bin/perl -w
require "test.pl";
$data[0][0] = 1.0;
$data[0][1] = 11.0;
$data[0][2] = 111.0;
$data[1][0] = 2.0;
$data[1][1] = 22.0;
$data[1][2] = 222.0;
@newData1 = fun1(@data);
print "Test1 "
. $newData1[1][0] . " "
. $newData1[1][1] . " "
. $newData1[1][2];
##########################
@newData2 = fun2(@data,2);
print "Test2 "
. $newData2[1][0] . " "
. $newData2[1][1] . " "
. $newData2[1][2];
--------------------------
test.pl
---------------
#!/usr/bin/perl -w
sub fun1 {
@data = @_;
print "Row Number = " . @data . "\n";
print "Column Number = " . @{ $data[0] } . "\n";
print "Data Item [1][1] = " . $data[1][1] . "\n";
$numRow = @data;
$numCol = @{ $data[0] };
for ( $i = 0 ; $i < $numRow ; $i++ ) {
for ( $j = 0 ; $j < $numCol ; $j++ ) {
print $data[$i][$j] . " ";
}
print "\n";
}
return @data;
}
sub fun2 {
@data = @{$_[0]} ;
print "Row Number = " . @data . "\n";
print "Column Number = " . @{ $data[0] } . "\n";
print "Data Item [1][1] = " . $data[1][1] . "\n";
$numRow = @data;
$numCol = @{ $data[0] };
for ( $i = 0 ; $i < $numRow ; $i++ ) {
for ( $j = 0 ; $j < $numCol ; $j++ ) {
print $data[$i][$j] . " ";
}
print "\n";
}
return @data;
}
1;
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
perldoc perlref
perldoc perllol
perldoc perllol
ASKER