#!/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!