use strict; use warnings; use 5.010; my $text = "field\n1,field2,field3\r\nfield4,field\n5,field6\n\r\n"; open my $fh, '<', \$text; local $/ = "\r\n"; while (<$fh>) { chomp; my ( $col1, $col2, $col3 ) = split ','; say "|$col1 $col2 $col3|"; }