Bonjour,
Plusieurs remarques.
D'une part, dechex n'est pas à ma connaissance une fonction standard de Perl, je ne sais donc pas ce qu'elle retourne.
Second point, la syntaxe de
for($i=0; $i<10; $i++) $chaine .= dechex(rand(0,1));
n'est pas correcte et je ne pense pas que cela puisse compiler.
Je ne sais donc pas ce qu'est censé contenir $chaine. Ce serait bien que tu nous affiches un exemple du contenu de ta $chaine.
Enfin et surtout, ta syntaxe semble retourner une chaîne de caractères contenant une représentation hexadécimale d'un nombre ou d'une série de nombres. Comme il s'agit d'une chaîne de caractères, une simple regex ordinaire devrait fonctionner, comme dans la session suivante sous le debugger:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| DB<1> $c = sprintf ("%x", 241)
DB<2> print $c
f1
DB<3> print $1 if $c =~ /(1)/
1
DB<4> print $1 if $c =~ /(.1)/
f1
DB<5> $c = hex sprintf ("%x", 241)
DB<6> print $c
241
DB<7> print $1 if $c =~ /(.1)/
41 |
Ou est-ce que je n'ai pas compris du tout ce que tu cherches à faire?
EDIT: je n'avais pas vu les deux derniers messages quand j'ai posté. Mais je persiste à penser que tu as une chaîne de caractères, pas un nombre binaire, même en PHP.
Partager