foreach(@inputs) {
local *FILE;
$file = "$FindBin::Bin/../rxo/$_";
$outfile = "$FindBin::Bin/../blocks/$_";
open(FILE, "$file") || die;
open(OUTFILE, ">> $outfile") || die;
$fh = \*FILE;
$ofh = \*OUTFILE;
$regex = <$fh>;
push(@regex,$regex);
push(@filehandles,$ofh);
}
####
my $i = 0;
while(<>) {
foreach(@inputs) {
print @filehandles[$i] if (/@regex[$i]/../^END_OF_BLOCK/);
$i++;
}
$i=0;
}
####
#!perl
use strict;
use warnings;
use FindBin;
my $dir ="$FindBin::Bin/../rxo";
opendir(my $dh, $dir) || die "can't opendir $dir: $!";
my @inputs = readdir($dh);
closedir $dh;
splice @inputs, 0, 2;
my @dispatch;
foreach(@inputs) {
my $outfile = "$FindBin::Bin/../blocks/$_";
#open(FILE, "$file") || die;
open my $ofh, '>', $outfile || die;
my $file = "$FindBin::Bin/../rxo/$_";
open my $fh, '<', $file || die;;
my $regex = <$fh>;
close $fh;
push @dispatch, { file => $ofh, regex => $regex };
}
while(my $line = do { local $/ = 'THE_END'; <> }) {
foreach (@dispatch) {
print { $_->{file} } $line if $line =~ $_->{regex};
print $line if $line =~ $_->{regex};
}
}