Yaml :: lógica

Lógica booleana simple en Yaml
Descargar ahora

Yaml :: lógica Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • Perl Artistic License
  • Precio:
  • FREE
  • Nombre del editor:
  • Michael Schilli
  • Sitio web del editor:
  • http://search.cpan.org/~mschilli/

Yaml :: lógica Etiquetas


Yaml :: lógica Descripción

Lógica booleana simple en Yaml Yaml :: lógica es un módulo de Perl que permite a los usuarios definir la lógica booleana simple en un archivo de configuración, sin permitirles que ejecuten el código arbitrario. Mientras que el código PERL se puede controlar con el módulo seguro, seguro no puede evitar que el usuario define infinito Bucles, agotando toda la memoria disponible o estrellando el intérprete mediante la explotación de errores de Perl conocidos. Yaml :: lógica no es perfecta a este respecto, pero hace que sea razonablemente difícil definir un código dañino. La sintaxis para la lógica booleana dentro de un archivo de YAML se inspiró en el archivo de John Siracusa :: DB :: Objeto :: QueryBuilder Module , que proporciona estructuras de datos para definir la lógica que luego se transforma en SQL. Yaml :: lógica toma la estructura de datos en su lugar y la transforma en el código PERL. Para el ejemplo, la estructura de datos para verificar si una variable $ var es igual a un valor "foo", parece esto: Es una referencia a una matriz que contiene tanto el valor de la variable como el valor para compararlo. En Yaml, esto se ve como la regla: - $ var - fooand Esta es exactamente la sintaxis que YAML :: lógica acepta. Tenga en cuenta que después de analizar la configuración de YAML anterior, debe pasar solo la matriz REF dentro de la entrada de reglas a YAML :: Método Evaluate () de Logic: $ Logic-> Evaluar ($ yaml_data -> {regla}, ... Pasando el Todos los datos de YAML causarían un error con YAML :: lógica, ya que espera recibir una matriz Ref.Synopsis usar yaml :: syck qw (carga); use yaml :: lógica; My $ LOGIC = YAML :: LOGIC-> Nuevo (); ### Pruebas definidas en algún lugar en un archivo yaml ... My $ DATA = Cargar (Q {# es $ var igual a "foo"? Regla: - $ var - foo}); ### Pruebas realizadas en Código de aplicación: si ($ lógico-> evalúa ($ data -> {regla}, {var => "foo"})) {impresión "¡VERDADERO! ";} Requisitos: · Perl


Yaml :: lógica Software relacionado