in reply to How to push the previous line based on the current line to two different files.
G'day suno,
This does what you want based on your input. I'll leave you to supply appropriate filehandles for the output.
#!/usr/bin/env perl use 5.010; use strict; use warnings; my @Read_Array = <DATA>; 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)
Output:
$ 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)
-- Ken
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: How to push the previous line based on the current line to two different files.
by GrandFather (Saint) on Sep 14, 2012 at 01:05 UTC | |
by kcott (Archbishop) on Sep 14, 2012 at 07:19 UTC | |
|
Re^2: How to push the previous line based on the current line to two different files.
by suno (Acolyte) on Sep 13, 2012 at 07:10 UTC | |
by Anonymous Monk on Sep 13, 2012 at 07:26 UTC |