use warnings; use strict; use Text::CSV; my $csv = Text::CSV->new( { binary => 1 } ) or die Text::CSV->error_diag(); print ""; while ( my $row = $csv->getline( \*DATA ) ) { print ""; print "" for @$row; print ""; } print "
$_
"; __DATA__ Source,Destination,User,State 192.168.0.2,192.168.0.6,"cn=user1,ou=infrastructure,ou=accounts,o=ORG,c=US",Allowed 192.168.0.3,192.168.0.6,"cn=user2,ou=infrastructure,ou=accounts,o=ORG,c=US",Denied