in reply to Manipilate the fixed lenght flat file

Based on your sparse spec. this might get you started.

The two things to note are:

  1. pack & unpack for dealing with fixed width data.
  2. Storing the data from each line until you've looked at the next line to decide whether it's a full line or an extension.
#! perl -sw use 5.010; use strict; my( $lastID, $lastF1, $lastF2 ) = 0; while( <DATA> ) { chomp; my( $id, $f1, $f2 ) = unpack 'a5 a10 a10', $_; if( $id && $id == $lastID ) { if( substr( $f1, 0, 1 ) eq ' ' ) { ## second field extension $lastF2 .= substr( $f1, 1 ); } else { $lastF1 .= $f1; } } else { say pack 'A5 A20 A20', $lastID, $lastF1, $lastF2 if $lastID; ( $lastID, $lastF1, $lastF2 ) = ( $id, $f1, $f2 ); } } __DATA__ 12345aaaaaaaaaabbbbbbbbbb 12365sssssssssscccccccccc 12365sssss 12367ddddddddddvvvvvvvvvv 12367 vvvvv

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."