es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Combina ‘if’ y ‘if not’ en Perl.

Tengo el siguiente filtro dentro de mi httpd.conf:

ExtFilterDefine jsonfilter mode=output intype=application/json cmd="/usr/bin/perl -pe 's|^|qq(\,\") . valid . qq(\"\: ) . qq(\") . time() . \\x0D . qq(\") . qq(\\n)|e if ($==eof) &&  unless (-f q{/tmp/md5_filter.tmp})'"

Pero la forma en que utilicé el operador && no es válida. No recibo ninguna salida si solicito el archivo. El filtro solo debería ejecutarse si el archivo md5_filter.tmp no existe y el comando s solo debería agregar la marca de tiempo al final del archivo (eof). ¿Alguien sabe qué está mal en mi código?

Tags:  

Answer

  1. Avatar for davy.ai

    Parece que hay un error en la forma en que se utiliza el operador &&. En lugar de && unless, debería ser && unless sin el código de entidad HTML.

    Además, el comando s|^|... está añadiendo la marca de tiempo al principio del archivo en lugar del final. Para solucionar esto, puedes cambiar el comando a s|$|..., lo cual agregará la marca de tiempo al final del archivo.

    La definición corregida del filtro debería lucir así:

    ExtFilterDefine jsonfilter mode=output intype=application/json cmd="/usr/bin/perl -pe 's|$|qq(\,\") . valid . qq(\"\: ) . qq(\") . time() . \\x0D . qq(\") . qq(\\n)|e if ($==eof) && unless (-f q{/tmp/md5_filter.tmp})'"
    

Comments are closed.