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

push @sheet2 , \@row;
You're pushing a reference to @row as an item into @sheet2. In order to create complex data structures (array of arrays, array of hashes, etc) you need to assign references.