Bienvenido a los foros de Perl en Español, Jaume85.
Yo creo que el problema está en lo que contiene $id.
Si se trata de un único valor, y con caracteres normales, entonces te valdría con
Using perl Syntax Highlighting
system("zmu -m $id -E");Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
El problema es si $id contiene caracteres que pueden realizar una "expansión" en la shell (metacaracteres), o espacios en blanco (estaríamos pasando varios parámetros en lugar de uno solo).
La solución más sencilla sería entrecomillar al parámetro díscolo:
Using perl Syntax Highlighting
system("zmu -m \"$id\" -E");Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
En este caso es entrecomillado doble, pero podría ser también el simple, para evitar futuras expansiones de metacaracteres.
O, yo también probaría con otra versión distinta:
Using perl Syntax Highlighting
system('zmu', "-m $id -E");Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Esta versión no hace una expansión de los metacaracteres que pudiera contener $id ('?', '*', '[', '{', etc. etc.).
Es recomendable una lectura cuidadosa de
system(), pues verás que también realiza una división por palabras, por lo que le afectará también que $id contenga espacios en blanco. En ese caso, hay que forzar el entrecomillado.
Quizás conque nos digas qué aspecto tiene $id, sabremos más del problema.