use Text::CSV; my $csv = Text::CSV->new( { sep_char => q/ /, # 0x20 escape_char => q/\\/, # Single backslash escapes. } ); while( my $row = $csv->getline(\*DATA) ) { print '[', join( '] [', @{$row} ), "]\n"; } __DATA__ "qazwsx" "edcrfv" "tgbyhn" "asdf" "ghjk" "l;zx" "cv\"bn" #### [qazwsx] [edcrfv] [tgbyhn] [asdf] [ghjk] [l;zx] [cv"bn]