Your hash creation should look like this:
%LdnLine = ($j => \@check2);
The value must be a reference, not an actual array.
To answer your second question--why does it look
right when you print out the entire hash--that's because
your array is being treated as a list to initialize the
hash. It's not treated as an array value to your
key $j; the values in @check2 are used as both keys
and values in your hash. This is more clear if you
do this:
use Data::Dumper;
print Dumper \%LdnLine;
With my dummy values for @check2 and $j this
gave me
$VAR1 = {
1 => 'foo',
'bar' => 'baz'
};
Which, I'll bet, is not what you were expecting.