use strict; use warnings; local $/ = "//\n"; while (<>) { chomp; my ( $len, $id, $parts ) = /(\d+)\s+(.+?)\n(.+)/s; $parts =~ s/\n//g; $parts =~ /.{$len}/p; print ">$id\n${^MATCH}\n${^POSTMATCH}\n" }