in reply to ideas needed for finding matching characters in 2d array

This isn't a solution but just so you know for future reference there was a logic error here:

print "number of cols= $#{s1[$i]}\n"; if ($j=0;$j<$#{s1[$i]};$j++)

$# will give you the index/subscript of the last element in the array whereas evaluating in scalar context will give you the number of elements in the array. Something like print scalar @list where the scalar function forces it to be evaluated as scalar.

I just noticed it's an if, too!.

# dont put @array in string or it prints the elements print "number of cols=".@{s1[$i]}."\n"; for(my $j=0;$j<scalar @{s1[$i]};$j++) # explicit scalar

update: also forgot to put my in front of $j=0