comment "un-tainter" un array ? [ Perl ] - Perl - Programmation
Marsh Posté le 22-04-2002 à 11:24:23
Alors personne ne sait comment "blanchir" un array ?
hihi
[jfdsdjhfuetppo]--Message édité par impulse le 22-04-2002 à 11:24:37--[/jfdsdjhfuetppo]
Marsh Posté le 22-04-2002 à 12:17:43
impulse a écrit a écrit : Alors personne ne sait comment "blanchir" un array ? hihi |
C'est à dire? tu veux faire quoi? vider un array?
Marsh Posté le 22-04-2002 à 13:10:14
Citation : C'est à dire? tu veux faire quoi? vider un array? |
Non non. J'ai un array qui contient des noms de fichiers et qui est tainted et pour utiliser ces noms de fichiers je dois faire un untaint (si tu ne connais pas la signification du mot "taint" tu ne peux pas m'aider donc c'est pas grave ).
Si tu veux comprendre ce que je dis : http://www.perl-gratuit.com/traduc [...] rlsec.html
Merci quand meme !
hihi
Marsh Posté le 22-04-2002 à 14:16:20
Dans la page dont tu as fournis l'url, il y a une exemple pour blanchir un scalaire... donc si tu as un tableau de scalaire, il te suffit de faire un map dessus :
Code :
|
ou tu peux utiliser
Code :
|
à la place si tu ne veux pas filtrer
Marsh Posté le 22-04-2002 à 14:23:16
Hum... la c'est a mon tour de pas trop capter ce que tu dis...
Je vais essayer de faire ce que tu as dit. J'ai essayé ça :
my ( @my_array ) = $edit->param('list' =~ /^([a-zA-Z\d]+)$/;
et bien sur ça marche po (@my_array ne contient que la premiere valeur de la list passée en param...).
a suivre... (la j'ai un cours d'allemand)
hihi
Marsh Posté le 22-04-2002 à 14:44:09
impulse a écrit a écrit : Hum... la c'est a mon tour de pas trop capter ce que tu dis... Je vais essayer de faire ce que tu as dit. J'ai essayé ça : my ( @my_array ) = $edit->param('list' =~ /^([a-zA-Z\d]+)$/; et bien sur ça marche po (@my_array ne contient que la premiere valeur de la list passée en param...). a suivre... (la j'ai un cours d'allemand) hihi |
En fait l'instruction map applique un bloc d'instruction à chaque élément d'un tableau, sachant que pour chaque élément, on lit et écrit la valeur du tableau via la variable $_ .
Ce que j'ai donc, c'est appliquer l'exemple de la doc à tout les éléments d'un tableau.
Dans ton exemple :
Code :
|
tu veux récupérer un tableau alors que l'expression régulière va te renvoyer uniquement 1 élément vu qu'il n'y a qu'un seul groupe de parenthèses.
L'interêt de map c'est de justement appliquer ça à tout les éléments d'un tableau.
Si ta méthode param renvoie bien un tableau (et pas une référence vers un tableau), alors essaie ceci :
Code :
|
Marsh Posté le 22-04-2002 à 15:55:27
Tentacle tu es un vrai perl guru !
Ca marche nickel maintenant (2eme methode car la methode param() retourne bien un array).
a+
hihi
Marsh Posté le 22-04-2002 à 16:08:52
de rien
tu connais la fonction perldoc -f en console (genre tu fais 'perldoc -f map' et tu verras )? très pratique et aussi l'aide en HTML installée avec Perl.
Marsh Posté le 22-04-2002 à 16:15:25
Citation : de rien |
Moi perso je fais http://www.perldoc.com
Mais encore faut-il entrevoir la solution pour s'en servir (ici la fonction map que je ne connaissais pas). J'ai cherché sur google avant de poster mais j'ai rien trouvé d'interessant sur "how to untaint an array"...
hihi
[jfdsdjhfuetppo]--Message édité par impulse le 22-04-2002 à 16:15:56--[/jfdsdjhfuetppo]
Marsh Posté le 22-04-2002 à 16:44:50
Un autre truc très très partique, cherche le fichier perlfunc.html dans ta doc Perl (celle qui est installée, par exemple C:/Perl/html/lib/Pod/perlfunc.html ) et tu y trouveras pas mal de fonctions qui sont triées par type (genre celles sur les arrays, sur les scalaires, les hash, sur les ES, etc...) et c'est pas mal quand tu ne sais pas quoi chercher :)
Marsh Posté le 22-04-2002 à 10:40:09
Tout est ds le topic. Je sais comment faire pour un scalaire mais pas pour un array.
hihi
PS : désolé pour ce "un-tainter" barbare mais en français ça donnerait un truc du genre "laver", ce qui n'a pas trop de sens...