Bonjour,

Dans un code en Perl, je réalise un traitement sur des requêtes SQL.

Un exemple simple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
select col2 from table1 where col1 like '$1'
$1 est juste une variable, qu'on va venir remplacer grâce au traitement réalisé dans la RegExp.

Ma RegExp se présente ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
        my $sep = "\$";
        my $request = shift;#je récupère ici la requête dont je parle au-dessus
 
        while ($request =~ /$sep/) {
                if ($request =~ /(.*)$sep(\d+)(.*)/){
 
                        print "$1";#select col2 from table1 where col1 like '
                        print "$3";#'
 
                        my $value = traitement($2);
                        $request = $1.$value.$3;
                 }
       }
Tout se passe bien pour ce traitement.

MAIS, si je transforme la requête avec "=" au lieu de "LIKE", ça ne marche plus.

Pouvez-vous me donner un coup de pouce, pour que ma RegExp marche à coup sûr dans les 2 cas ("=" et "LIKE")?

Merci pour votre aide.