while ( ) { my ($f0, $f1, $f2, $rest) = split m{,}, $_, 4; print join q{|}, $f0, $f1, $f2, reverse map { $_ = reverse } split m{,}, reverse($rest), 5; }