use warnings; use strict; my $file_line; while () { if ( /^FILE/ and !/\s+[0-9]+ \\$/ ) { ( $file_line = $_ ) =~ s/[\s\\]+$/ /; } elsif (/^([0-9]+)\s+?(.*)$/) { $file_line .= $1 . " \\\n" . $2; print $file_line, $/; } else { print; } } __DATA__ FILE TEXT VAL 9999.999 08-jul-2014 \ 270 3E4497B6B8482ADED734 HDNDFLHWLEJHFL LKSNFLKN \ WKENFLWHFELHN UIEKEFJBKJFN FILE TEXT2 VAL 9999.999 16-may-2014 60 \ 8EC4B7367989D54F6D6C HSHFGFLALKHF KJAHEFKHAH\ YRNBFLJNELFN LQJFLKJWEF LKJFLKWJF