Probleme de comparaison de 2 chaines [Perl - Débutant] - Perl - Programmation
Marsh Posté le 10-05-2007 à 00:46:58
obn à chaud comme ca, et sans le résultat à l'écran c'est un peu dur à débugguer
mais qques conseils pratiques pour perl :
1) évite les commandes systèmes sauf si tu ne peux pas le faire en perl
pour ta lecture de fichier, il est généralement conseillé d'ouvrir un file descriptor et de le stocker dans une liste, ce qui te facilitera les manipulations après coup
Code :
|
avec ce bout de code, tu auras les lignes contenant "pasv_address" dans un tableau, tu pourrais également pousser plus loin le vice en ne prenant pas en compte les lignes commentées, et autre exceptions qui pourraient t'arriver
2) utilises des regex plutôt que des substr, ca rendra ton truc plus souple, parce que là je sais pas trop ce que tu as récupéré ; un exemple con :
Code :
|
sera récupérée par ta commande système grep, alors que c'est une ligne commentée
De plus, ton substring ne marchera pas à cause du # et des nombreux espaces entre le paramètre et sa valeur
sinon pour ton problème, tu utilises le bon opérateur ("ne" ) même si la condition est redondante => voici 3 lignes équivalentes :
Code :
|
perso je préfère la dernière ligne, mais bon chacun ses goûts et sa manière de travailler
donc ton problème est peut-être dans les chaînes mêmes, peut-être as-tu un caractère pourri qui se balade (retour chariot, espace, ...)
essayes de débugguer, soit en faisant des affichage écrans plus visibles comme par exemple :
Code :
|
et là tu verras totu de suite si t'as un truc pourri qui se balade soit en utilisant le débuggeur perl (perl -d script.pl)
mais bon à priori ca a l'air bon, mais mon cerveau n'est pas un interpréteur perl avec je peux pas aller plus loin
Marsh Posté le 09-05-2007 à 23:08:27
bonjour,
débutant en perl depuis tres peu de temps, j'essaye de mettre en place un script permettant de récupérer mon adresse publique, et de la comparer à celle d'un fichier de configuration (vsftp).
Voici mon code :
Le probleme viens lors de la comparaison, qui ne s'effectue pas correctement (toujours valeur a 0). Je suppose que c'est dû au type de "$1" (ip publique que je recupère).
Avez vous une idée ???
Merci
Ced