#!/usr/bin/perl use strict; use warnings; use Text::CSV; my $csv = Text::CSV->new ({quote_char => '!'}); print "Splitting data by comma as a delimiter \n"; while (){ next unless $csv->parse ($_); my @data = $csv->fields (); print "Data splitted is as below \n"; print join("==>",@data),"\n"; # i will do something else with splitted data in this iteration } __DATA__ !A001ST!,!98!,!1!,!01/10/1999!,!EUROPEENNE!,!0!,!EUR!,!6!,!7!,!0!,!98!,!1! !A001ST!,!AD,CD!,!1!,!20/05/2004!,!ANDORRA!,!0!,!EUR,USD!,!6!,!7!,!0!,!AD!,!1! #### Splitting data by comma as a delimiter Data splitted is as below A001ST==>98==>1==>01/10/1999==>EUROPEENNE==>0==>EUR==>6==>7==>0==>98==>1 Data splitted is as below A001ST==>AD,CD==>1==>20/05/2004==>ANDORRA==>0==>EUR,USD==>6==>7==>0==>AD==>1