aide sur script - Perl - Programmation
Marsh Posté le 31-12-2003 à 02:02:47
deja tu veux le mettre entre balise C/C++ et l'aligné comme il faut?
Marsh Posté le 31-12-2003 à 11:20:23
yannvi a écrit : |
heu si je te dis que tu es trop confus, tu l'prendras po mal hein ?
Comme dit Burgergold, édite ton message et place ton extrait de code Perl entre balises C/C++ parce que là, c'est pas évident à capter
Marsh Posté le 31-12-2003 à 12:19:04
Desole j avais fais un copier-coller depuis vi
Il s agit d un instruction
SWITCH:
{
if ($curlin =~ /^dn: uid/) { $lname=(split(/,$curlin))[1];
$lname=~ s/^\s+//;
$lname=(split(/,/,$lname))[0];
last SWITCH; };
if ($curlin =~ /^changetype: delete/ ) { $type=(split(/,$curlin))[1];
$ok=1;last SWITCH; };
# Si Ajout d un utilisateur ou modification
if ($curlin =~ /^(changetype: modify)/ && $lname =~ /uid/ ) { $type=(split(/,$curlin))[1];last SWITCH;};
if ($curlin =~ /^replace: /) { $qq=(split(/,$curlin))[1]; last SWITCH; };
if (($curlin =~ /^\$qq\/i && ($qq !~ /^( modif)/) ){ $val=(split(/,$curlin))[1];$ok=2;last SWITCH;};
$nothing=1;
}
et le hic se situe la if (($curlin =~ /^\$qq\/i && ($qq !~ /^( modif)/) ) ... c plus clair ? sinon ben vais me debrouiller comme un grand .
Merci
Marsh Posté le 31-12-2003 à 12:22:11
yannvi a écrit : remplacer le smiley pas "" |
NON ! Regarde au dessus de la zone de ton texte quand tu l'édites, tu as plusieurs boutons (G pour gras, I pour italique, etc et C/C++)
Sélectionne ton extrait de code et clique sur ce bouton C/C++, ça te mettra des balises devant et derrière ton script et ça sera nettement nettement NETTEMENT plus clair pour nos pôvres neu-noeils à nous zotres
Marsh Posté le 31-12-2003 à 13:55:03
Code :
|
Marsh Posté le 31-12-2003 à 15:17:43
Code :
|
ca je considère ca comme du code bien aligné
les ; après les if jai personnelement javais vu ca
tu utilise bien "my" lorsque tu créé une variable? (use strict; en début de script)
Marsh Posté le 01-01-2004 à 14:09:37
c'est un peu confu comme truc
deja si tu fait des elsif ca t'evitera de faire un last SWITCH à chaque fois (en mettant le $nothing = 1 dans un dernier else)
Marsh Posté le 01-01-2004 à 17:25:54
pospos a écrit : c'est un peu confu comme truc |
bah c comme ca que ca marche le switch en perl
Marsh Posté le 01-01-2004 à 18:33:39
c'est pas à toi que je disais ca Burgergold!
mais dans ce cas un if{}elsif{}...}else{} serait plus approprié
pour le switch, ya le fameux Switch.pm de Conway qui est intégré aux distibs d'ActivePerl et qui est vraiment bien:
http://search.cpan.org/~dconway/Switch-2.09/Switch.pm
Marsh Posté le 01-01-2004 à 18:57:34
nah je sais que c'est pas à moi que tu dis ca mais histoire de connaissance personnelle, t'est en train de te dire que le switch en perl est inutile et qu'il vaut autant mieux utiliser un if {} elsif{} ?
et le switch.pm c bien? jvais allez regarder ca
Marsh Posté le 01-01-2004 à 19:04:36
non c'est clair qu'il manque un switch en Perl, mais en tous cas un if elsif c'est toujours mieux que des if qui se suivent et font un last
l'avantage du switch c'est que tu le fait sur la meme variable pour toutes les comparaisons, et donc c'est plsu clair que de devoir la remettre dans chaque if. Une autre solution possible c'est de passer implicitement la variable dans $_, en faisant un for par exemple:
Code :
|
mais de toutes facons le Swtich de Damien conway est beaucoup plus puissant!
Marsh Posté le 01-01-2004 à 19:15:55
switch de damien vient avec la version unix de perl dans le kit de librairie de base?
Marsh Posté le 01-01-2004 à 21:16:37
je sais pas trop
il necessite Filter::Simple, quie st inclus à partir de perl 5.8 il me semble
Marsh Posté le 30-12-2003 à 22:50:58
bonjour
j ai un petit script qui va analyse les lignes d un fichier ,
et voici un extrait de ce script
SWITCH : {
if ($curlin =~ /^changetype: delete/ ) {$type=(split(/,$curlin))[1];
$ok=1;last SWITCH; };
if ($curlin =~ /^changetype && $lname =~ /uid/ ) { $type=(split(/,$curlin))[1];last SWITCH;};
if ($curlin =~ /^replace: /) { $qq=(split(/,$curlin))[1]; last SWITCH; };
if ($curlin =~ /\"$qq\") { $val=(split(/,$curlin))[1];$ok=2; last SWITCH; };
$rien=1;
}
je recupere une variable $qq et je teste si la ligne suivant contient cette variable , mais cela ne pas
une idee .
J espere ne pas etre trop confus