in reply to
Using variable to hold regex expression
Have you considered using Regexp::Common::net to capture those IPs?
use strict;
use warnings;
use Regexp::Common qw/net/;
while (<DATA>) {
if ( my ( $firstIP, $secondIP ) = /($RE{net}{IPv4})/g ) {
print "FirstIP: $firstIP\nSecondIP: $secondIP\n\n";
}
}
__DATA__
Sample data Mar 10 07:42:38 DR-FW-1 : %ASA-6-305011: Built dynamic UDP
+ translation from inside:172.28.17.130/3324 to outside(internet-traff
+ic):69.176.102.83/24295
Sample data Mar 10 07:42:38 DR-FW-1 : %ASA-6-305011: Built dynamic UDP
+ translation from inside:155.0.42.42/3324 to outside(internet-traffic
+):71.200.20.7/24295
Output:
FirstIP: 172.28.17.130
SecondIP: 69.176.102.83
FirstIP: 155.0.42.42
SecondIP: 71.200.20.7