local $/ = ""; # set paragraph mode to read one record at a time while (my $record = ) { for ( split /[\n\r]+/, $record ) { my ($Num, $Qt, $_trashit) = split /\^/, $_; print "$Num || $Qt || $_trashit\n"; } } __DATA__ 22009^1^52.90 22010^1^42.90 22011^1^32.90 22009^1^52.90 22010^1^42.90 22011^1^32.90