#!/usr/bin/perl #use strict; #use warnings; use Text::ParseWords; my ($RECORD, @FIELDS, $RE); my $DFile="/home/infosec/data/RegEx"; open (DATA, "<$DFile") || die ("Cannot open DATA file \n"); my @LINES=; my $tLINES=@LINES; foreach $RECORD (@LINES[0..$tLINES-1]) { @FIELDS=split(/:/, "$RECORD"); my $TNAME=$FIELDS[0]; my $TVALU=$FIELDS[1]; my $TFILE=$FIELDS[2]; my $REGEX=$FIELDS[3]; chomp($REGEX); my $regex = eval { qr/$REGEX/ }; print "$regex \n"; open (TFILE, "<$TFILE") || die ("Cannot open Test file \n"); while () { if( m/$regex/ ) { print "$_"; print "\t\t\$&: ", substr( $_, $-[0], $+[0] - $-[0] ), "\n"; foreach my $i ( 1 .. $#- ) { print "\t\t\$$i: ", substr( $_, $-[$i], $+[$i] - $-[$i] ), "\n"; } } } print "\n"; } print "\n";