Bonjours à tous ,
J’espère que je poste mon problème au bon endroit :/ Je suis nouveau et ceci est mon premier message 
Je vous explique mon problème :
Je suis étudiant en première année de BTS et je suis en stage de 6 semaines.
Le but de mon stage est de créer un script ( j'ai choisit Perl ) pour associé a chaque port , la description du Vlan qui lui est donnée plus celle du port initial .
J'ai fait une ébauche de programme qui lit dans le fichier ( que j'ai arrangé ) pour trouvé le nom du port ligne 1 puis navigue dans le fichier des vlan ( arrangé aussi ) pour trouver la description du Vlan correspondant au port.
Voici le programme que j'ai commencé :
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
| use strict;
use warnings;
my $numVlan;
my $fVlan = 'E:\\Vlan.txt'; # fichier des données Vlan
my $fInt = 'E:\\Interf.txt';#Fichiers des données interfaces
my $fFinale = 'E:\\Conf.txt';#Fichiers final
my $compteur = "0";
my @ligneInt;
my @ligneVlan;
my $portVlan;#Les interfaces occupées pas le n-ieme Vlan
my $descInt;
my $descVlan;
my $Interface;
open(my $fh1, '<', $fVlan) or die "[$fVlan]: fichier introuvable!"; # Ouverture en lecture du fichier vlan
open(my $fh2, '<', $fInt) or die "[$fInt]: fichier introuvable!"; # Ouverture en lecture du fichier Interface
open(my $fh3, '>>',$fFinale) or die "[$fFinale]: Fichier introuvable."; # Ouverture en écriture (ajout) du fichier final
# on a pu ouvrir. On ecrit la ligne d'en tête
print ( $fh3 "-------------------------------------------------\n");
print ( $fh3 "Interface Description Complete\n");
print ( $fh3 "-------------------------------------------------\n");
while ( my $fichier2 = <$fh2>) #PROBLEME
{
@ligneInt = split(/;/,$fichier2);
$descInt = pop @ligneInt;#@ligneInt ne garde que le nom du port
chomp $descInt;
$descInt = "$descInt +";#On sépare les descriptions par le signe +
while (my $fichier1 = <$fh1>) #On recherche les Vlans occupés
{
if( $fichier1 =~ m/@ligneInt/ ) #Si la ligne de l'autre fichier contient le nom du port
{
@ligneVlan =split (/;/,$fichier1);#On sépare les différentes parti de la ligne
$portVlan = pop @ligneVlan;#Tous les numéro de ports du Vlan numéro n
$descVlan = pop @ligneVlan;#La description du Vlan correspondnat au port
#@ligneVlan ne contient plus que le numeror de Vlan
if ($descVlan eq 'default') #Supprime la description du Vlan 1 qui est inutilisé
{
$descVlan ='Port non utilise';
}
} else #Si le port n'est pas trouvé
{
$descVlan="";
}
}
print ( $fh3 "@ligneInt $descInt $descVlan\n");
}
<>; |
Mon problème est que le script ne lit que la première ligne du $fh2
Sauriez vous où est mon probleme ?
Je vous remercie d'anace et vous souhaites à tous une bonne journée .
Merci .
Partager