Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2689 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [ Perl ] comment "un-tainter" un array ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ Perl ] comment "un-tainter" un array ?

n°129168
impulse
Posté le 22-04-2002 à 10:40:09  profilanswer
 

Tout est ds le topic. Je sais comment faire pour un scalaire mais pas pour un array.
 
hihi :p
 
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... ;)

mood
Publicité
Posté le 22-04-2002 à 10:40:09  profilanswer
 

n°129184
impulse
Posté le 22-04-2002 à 11:24:23  profilanswer
 

Alors personne ne sait comment "blanchir" un array ? ;)
 
hihi :D

 

[jfdsdjhfuetppo]--Message édité par impulse le 22-04-2002 à 11:24:37--[/jfdsdjhfuetppo]

n°129197
Tentacle
Posté le 22-04-2002 à 12:17:43  profilanswer
 

impulse a écrit a écrit :

Alors personne ne sait comment "blanchir" un array ? ;)
 
hihi :D  
 
 




 
C'est à dire? tu veux faire quoi? vider un array?

n°129231
impulse
Posté le 22-04-2002 à 13:10:14  profilanswer
 

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 :D

n°129312
Tentacle
Posté le 22-04-2002 à 14:16:20  profilanswer
 

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 :
  1. @array = ... ; # ton tableau
  2. @array = map {($_) = $_ =~ /^([-\@\w.]+)$/} @array;


 
ou tu peux utiliser

Code :
  1. /^.*$/

à la place si tu ne veux pas filtrer :)

n°129314
impulse
Posté le 22-04-2002 à 14:23:16  profilanswer
 

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 :D

n°129325
Tentacle
Posté le 22-04-2002 à 14:44:09  profilanswer
 

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 :D  




 
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 :
  1. my ( @my_array ) = $edit->param('list') =~ /^([a-zA-Z\d]+)$/;

 
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 :
  1. my @my_array = map {($_) = $_ =~ /^([-\@\w.]+)$/} $edit->param('list');

n°129357
impulse
Posté le 22-04-2002 à 15:55:27  profilanswer
 

Tentacle tu es un vrai perl guru ! ;)
Ca marche nickel maintenant (2eme methode car la methode param() retourne bien un array).
 
a+
 
hihi :D

n°129371
Tentacle
Posté le 22-04-2002 à 16:08:52  profilanswer
 

de rien :)
 
tu connais la fonction perldoc -f en console (genre tu fais 'perldoc -f map' et tu verras ;) )? très pratique :D et aussi l'aide en HTML installée avec Perl.

n°129377
impulse
Posté le 22-04-2002 à 16:15:25  profilanswer
 

Citation :

de rien :)
tu connais la fonction perldoc -f en console (genre tu fais 'perldoc -f map' et tu verras ;) )? très pratique :D et aussi l'aide en HTML installée avec Perl.


 
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 :D

 

[jfdsdjhfuetppo]--Message édité par impulse le 22-04-2002 à 16:15:56--[/jfdsdjhfuetppo]

mood
Publicité
Posté le 22-04-2002 à 16:15:25  profilanswer
 

n°129405
Tentacle
Posté le 22-04-2002 à 16:44:50  profilanswer
 

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 :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [ Perl ] comment "un-tainter" un array ?

 

Sujets relatifs
[Perl] interpreteur pour win 2k...[ php ou perl + rezo ] actualiser l'ip d'une machine sous adsl
[PERL] Liste des tables dans Access.... SQL commande ?[PERL] execution de programme externe
[Perl] J'arrive pas a obtenir ce que je veux avec les regexp[PERL] supression des espaces de début et de fin dans une chaine
[Perl] comment créer un fichier (text) et y ecrire des chaines de cara[perl] ptit soucis
[perl] named pipesInstallation de Perl sous win2k pour stats hl
Plus de sujets relatifs à : [ Perl ] comment "un-tainter" un array ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR