#!/usr/bin/env perl use 5.010; use strict; use warnings; my @Read_Array = ; my (@code_file, @var_file); my $var_file_re = qr{ \A \s* DC }x; my $label_re = qr{ \s+ EQU \s+ \* }x; my $label_line = ''; for (@Read_Array) { if (/$label_re/) { $label_line = $_; next; } if ($label_line) { $label_line .= $_; if (/$var_file_re/) { push @var_file, $label_line; } else { push @code_file, $label_line; } $label_line = ''; } } say 'CODE_FILE:'; print join "\n" => @code_file; say 'VARIABLE_FILE:'; print join "\n" => @var_file; __DATA__ LABEL#1 EQU * $MAC ABORT LABEL#2 EQU * $NOT UPDATE,STOP T#TAB1 EQU * DC AL4(-1) #### $ pm_capture_last.pl CODE_FILE: LABEL#1 EQU * $MAC ABORT LABEL#2 EQU * $NOT UPDATE,STOP VARIABLE_FILE: T#TAB1 EQU * DC AL4(-1)