Para imprimir el $1 tengo problemas, está vacío, supongo que es porque al no respetar el patrón, no hay nada que comience con p y termine con z.
Por el momento lo solucioné así:
Using perl Syntax Highlighting
if ($linea !~ /$expreg/si)
{
if ($linea !~ /$expreg/i)
{
if ($linea =~ /(=\s*)(.*)(\s?$)/)
{
$lin = $lin.$2."\t";
$aux = $3;
}
} }Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Aclaro que concateno porque la salida, cada 4 renglones debe la información desplegarse en el mismo renglón, por la lógica de la información. Obvié esos detalles de algoritmia que sí me funcionan.
Lo que no funciona es que a veces necesito imprimir el valor de $3. O sea lo que siga después de la palabra, ya sea nada o una nueva línea. Si no pongo el valor en $aux, cuando $3 no tiene nada sale un msg diciendo que la misma no fue inicializada. Almacenando el valor en $aux no tengo ese problema. ¿Qué alcance tienen estas variables?
¿Cómo saber si $3 es 'null'? (así sé cuándo imprimirlo)
La solución con $aux me funciona a medias, por momentos agrega un \n que no debería aparecer.
Gracias por la ayuda que me has venido dando.
No entiendo qué está mal en esta expresión:
Using perl Syntax Highlighting
$expreg = '(\w*\s*=\s*)(^[^p].*[^z]$)';Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
Quiero tomar $2, lo que no comience con p y ni termine con z.
Saludos, ro