#!/usr/bin/perl -wl use strict; use Text::CSV_XS; my $row = '0005:A:A2:\\\\string 04\\\\'; # Translate escaped : "\:" $row =~ s/\\:/$;/eg; my $csv = Text::CSV_XS->new({'quote_char' => '', 'escape_char' => '', 'sep_char' => ':', 'binary' => 1 }); if ($csv->parse($row)) { my @fields = $csv->fields(); # Replace escaped chars s/$;/\\:/g for @fields; print "$fields[3]\n"; } else { print "Parse failed ", $csv->error_input(); }