On Wed, 2005-03-30 at 18:28 +0200, Rémi Letot wrote: > Hello, > > pour le background de l'affaire, il faut savoir que je ne suis pas un > programmeur, et encore moins en perl :-) J'ai trouvé un petit script > perl qui me permet de rebooter à distance des téléphones IP que > j'utilise. Ce script ne fonctionnait pas, et j'ai fini par isoler la > portion du code qui ne fait pas ce qu'elle doit : > > if ( $testline =~ m{\s+(.*?)\/.*$_[0].*}i ) { > $extension = $1; > > Ce bout de code est dans une procédure qui prend l'adresse ip du > téléphone en argument, et les "testline" sont du format suivant : > > poly1/poly1 192.168.50.31 D 255.255.255.255 5060 > Unmonitored > > Dans cet exemple, le paramètre passé à la procédure est 192.168.50.31, > et extension en sortie doit valoir poly1. > > Visiblement la condition if n'est jamais validée (j'ai placé un print > dedans qui ne passe jamais), mais je n'ai pas la moindre idée de ce que > représente ce patern, et encore moins de comment aborder ce truc. > Quelqu'un peut m'aider ou me mettre dans la bonne direction ? > > Merci,
Apparemment la RE à l'air OK à un + près. Est-ce que les testline commencent par des espaces parce que \s+ demande un espace ou plus. Peut-être le remplacer par \s* ? _______________________________________________________ Linux Mailing List - http://www.unixtech.be Subscribe/Unsubscribe: http://www.unixtech.be/mailman/listinfo/linux Archives: http://www.mail-archive.com/linux@lists.unixtech.be IRC: chat.unixtech.be:6667 - #unixtech NNTP: news.gname.org - gmane.org.user-groups.linux.unixtech