use Modern::Perl; use File::Slurp qw/read_file/; my $lines; for (read_file 'data.txt') { if ( /Orderbook/ .. /ISIN/ ) { $lines .= $_; } elsif ($lines) { my ( $id, $sy, $is ) = $lines =~ /ID:(.*)[\s\S]+Symbol:(.*)[\s\S]+ISIN:(.*)/; my $line = "$id:$sy:$is"; $line =~ s/\s//g; say $line; $lines = ''; } }