Bonjour,
Voila, j'utilise la fonction "split", afin d' éclater une chaîne de caractère en sous parties, et la placer dans un tableau.
Voici un exemple de l'utilisation que j'en fais :
1 2
| $prog = separator($), computing(select col2 from where col1 like '$1' or col2 like '$2'), getconnexion(), execution()
my @funcs=split(/[;:]{1,}/, $prog); |
On obtient donc, avec l'utilisation de "split", les éléments suivants dans le tableau, grâce au séparateur ",":
1 2 3 4
| separator($)
computing(select col2 from where col1 like '$1' or col2 like '$2')
getconnexion()
execution() |
Le fait que ma ligne traitée contienne une requête SQL est important pour la suite.
En effet, si ma requête est du style :
insert into table1 (col1,col2,col3,col4) values ('$1','$2','$3','$4')
On remarque que la requête contient des "," causant ainsi des soucis dans l'utilisation actuelle que je fais de la fonction "split".
J'ai remarqué que pour m'en sortir, en gardant la possibilité de garder la "," comme séparateur (je n'ai pas le choix, je dois la conserver en tant que séparateur pour des raisons qui n'ont rien à voir ici), il faudrait que la "," fasse bien ofice de séparateur dans le "split", sauf si elle est contenue dans des parenthèses ...
Avez-vous une idée pour modifier mon code, de manière à ce que la virgule serve de séparateur, à condition qu'elle ne soit pas contenue entre des parenthèses ?
Merci pour votre aide.
Partager