"0451524934","1984",7.9500,67,"Penguin Putnam" "0618056815","42nd Parallel",13.0000,25,"Houghton Mifflin" "0195167929","A Strange Likeness - Becoming Red and White in Eighteenth Century",29.9500,0,"Oxford University Press" "0520204026","Abortionist : A Woman Against the Law",25.0000,30,"University of California Press" #### use Text::CSV; # ... load data into @array2 my $csv = Text::CSV->new(); for my $line ( @array2 ) { if ( $csv->parse( $line )) { my @fields = $csv->fields; $Tex{$fields[0]} = \@fields; # or maybe you want this instead? : # $Tex{$fields[0]} = [ @fields[1..$#fields] ]; } else { warn "CSV parse error on: $line\n"; } }