## This is a comment! OPTIONS --> OPTIONS.txt GET --> GET.txt REGEX: ^124\.40\.\d{1,3}\.\d{1,3} --> REGEX.txt ::default:: --> default.txt #### #! /usr/bin/perl use strict; use warnings; my $default; my %rules; open INFILE, shift || "split_rules.txt" or die $!; while() { unless(m/^##/) { if(m/::default:: --> (\S+)/) { $default = $1; open DEFAULT, ">$default" || die $1; } elsif(m/REGEX: (\S+) --> (\S+)/) { $rules{qr/$1/} = $2; } elsif(m/(\S+) --> (\S+)/) { my $string = quotemeta($1); $rules{qr/$string/} = $2; } else { die "$0: Syntax Error!\n"; } } } close INFILE; foreach my $rule (keys %rules) { open(my $fh, ">", $rules{$rule}) || die $!; $rules{$rule} = $fh; } while(my $line = ) { study $line; my $match = 0; foreach my $rule (keys %rules) { if($line =~ /$rule/) { $match=1; print {$rules{$rule}} $line; } } if(defined($default) && $match!=1) { print DEFAULT $line; } } foreach my $rule (keys %rules) { close $rules{$rule}; } if(defined($default)) { close DEFAULT; }