#@data = SplitCSVLine($csv_line); sub SplitCSVLine { my ($line) = @_; my ($value, @data); while(1) { last if($line =~ /^\s*$/); if($line =~ /^[^\"]/) { $line =~ s/(.*?)(,|$ )//x; $value = $1; } else { $line =~ s/\"((\"\"|[^\"])*)\"(,|$ )//x; $value = $1; $value =~ s/\"\"/\"/g if defined $value; } push @data, $value; } return @data; }