while ( ) { my @f012 = split m{,}, $_, 4; my $rest = pop @f012; my @f76543 = map { $_ = reverse } split m{,}, reverse($rest), 5; print join q{|}, @f012, reverse @f76543; }