in reply to Re^2: what is @$varname in perl
in thread what is @$varname in perl

this :

... my $row; @$row = split(/,/, $line ); push @$sheet2 , $row; ...
OR
... my @row = (); @row = split(/,/, $line ); push @sheet2 , \@row; ...
Could be written like this in one line instead of three
... push @sheet2, [ split(/,/, $line ) ]; ...
And there is no need for the array variable row at all.
You could use Data::Dumper to view your variable @sheet2 to confirm.

If you tell me, I'll forget.
If you show me, I'll remember.
if you involve me, I'll understand.
--- Author unknown to me