probleme avec foreach et l'ascii 10 [PERL] - Perl - Programmation
Marsh Posté le 16-04-2008 à 15:08:10
Une petite ligne de test
Code :
|
Montre que le probleme n'est pas au niveau du foreach, mais du qx, qui par défaut, considère les \n comme des record separator.
Citation : qx/STRING/ |
Il va falloir jouer avec la valeur de $/ pour modifier cela. S'il y a un caractere separateur de record dans tes données, il faut positionner $/ a cette valeur (voire chaine).
Si tes records ont une taille maximale, tu peux peut etre utiliser la technique "$/ = \32768; # or \"32768", or \$var_containing_32768" explicitée dans la doc perl.
Citation : input_record_separator HANDLE EXPR |
En hopant que ça helpe...
A+,
Marsh Posté le 16-04-2008 à 17:53:23
Merci pour toutes ces explications
Il semble bien que se soit le $/ le responsable
un ord($/) me confirme que ce bien l'ascii 10 (LF) le séparateur par defaut
Je testerais demain un truc du genre
Code :
|
Avant mon appel de qx
Merci
Marsh Posté le 16-04-2008 à 14:24:29
Bonjour a tous
Je sollicite votre aide pour un problème qui doit etre tout bete... enfin pas pour moi (sinon ce post ne serait pas là einh )
J'explique :
Je fais un bel appel systeme bien gras avec la fonction "qx" sur une BDD avec ODBC... (je vous passe les details du "pourquoi je ne peux pas le faire avec DBI" )
En gros:
Je traite les resultats un a un avec un foreach:
Seulement le hic, c'est que des petits malins on mis des code ascii 10 (Line Feed, saut de ligne) dans leur desc (pour faire plus jolie :s)
et donc pour une ligne du genre :
foreach comprend
donc 3 tours de boucle au lieu de 1 seul
Il y a un moyen de parade ?
Merci a tous
Et bonne journée
Message édité par 3xc4l18ur le 16-04-2008 à 14:30:06