1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| use strict;
use warnings;
open my $RULE, "<", "rule.txt" or die "Can't open rule.txt for reading: $!";
my %rule;
<$RULE>; # Ignore the first line
while (defined(my $rule = <$RULE>)) {
chomp($rule);
$rule{$rule}++;
}
open (my $ADDRESS, "<", "address.txt") or die "can't open address.txt for reading: $!";
open (my $FICHIER1,">", "addressuseless.txt") or die "Can't open addressuseless.txt for writing: $!";
print { $FICHIER1 } scalar(<$ADDRESS>); # Read and write the first line
while (defined(my $address = <$ADDRESS>)) {#trouver toutes les adresses de ADDRESS qui ne sont pas dans RULE et les stocker dans FICHIER1
chomp($address);
if (defined(my $out = (split /\s+/, $address)[0])) {
if (exists $rule{$out}) {
print { $FICHIER1 } "address found \n"; # à supprimer par la suite, n'est là que pour savoir si la condition passe ou pas
}
else{
print $out, "\n";
print { $FICHIER1 } $out, "\n" ;
}
}
else {
print "No address found at line $. [$address]\n";
}
}
open (my $ADDRESSGROUP,"<", "addressgroup.txt") or die "Can't open addressgroup.txt for reading: $!";
open (my $FICHIERGROUP,">", "fichiergroup.txt") or die "Can't open fichiergroup.txt for writing: $!";
#trouver tous les groupes d'adresses qui sont dans RULE et les stocker dans FICHIERGROUP
while (defined(my $addressgroup = <$ADDRESSGROUP>)) {
chomp($addressgroup);
my ($out2, $out3) = (split /\s+/, $addressgroup)[0,1];
if (defined $out2) {
print $out2, "\n";
if (exists $rule{$out2}){
print $out2, "\n"; # WHY WRITING AGAIN out2 ???
if (defined $out3) {
print { $FICHIERGROUP } $out3, "\n";
}
else {
print "No zone found at line $. in addressgroup.txt [$addressgroup]\n";
}
}
}
else {
print "No group found at line $. in addressgroup.txt [$addressgroup]";
}
}
close($ADDRESSGROUP);
close($FICHIERGROUP); |
Partager