| Datos :: postfixderef Permitir -> [] -> {} como alternativa a @ {}% {} |
Descargar ahora |
Datos :: postfixderef Clasificación y resumen
- Licencia:
- Perl Artistic License
- Nombre del editor:
- Ben Morrow
- Sitio web del editor:
- http://search.cpan.org/~bmorrow/
Datos :: postfixderef Etiquetas
Datos :: postfixderef Descripción
Permitir -> [] -> {} como alternativa a @ {}% {} Datos :: PostFixDenderedef es un módulo PERL que instala un gancho en el analizador Perl, que permite la sintaxis: $ X -> [] []; como alternativa a: @ {$ x -> }; y de manera similar $ x -> {} para% {$ x -> }. La idea es hacer expresiones como @ {$ obj -> {foo} {bar} {baz}} menos difícil de manejar. Estas expresiones se pueden usar en cualquier lugar donde la expresión equivalente @ {} hubiera sido válida; En particular, se pueden pasar a (\ @): funciones prototipadas, y banderas como las claves y los push.diseated syntaxany, las suscripciones adicionales, como $ x -> [] [] elictarán los suscriptores adicionales del error ' -> [] están prohibidos '(pero ver "TODO" ABAJO). Intentar interpolar un hash en una cadena con "$ x -> {}" fallará con' no se puede interpolar el hash '. Los ganchos instalados se pueden eliminar sin datos :: postfixderef; Tenga en cuenta que todos los códigos compilados mientras los ganchos están en efecto obtendrán la nueva sintaxis, incluso el código en diferentes paquetes o archivos diferentes. También tenga en cuenta que una vez que se eliminen los ganchos, STRING-EVALS no permitirá la sintaxis, incluso si el código circundante lo haría. HSYNOPSIS Utilice los datos :: PostFixDeref; My $ x = {a => }]}; Imprimir por $ x -> {a} {b} []; Imprimir para llaves $ x -> {a} {}; PUSH $ X -> {A} [], {C => 4}; Requisitos: · Perl Limitaciones: · Como en realidad no reemplazamos el analizador Perl, la nueva sintaxis no es tan general como podría ser. Los únicos casos que trabajarán son · Directamente después de otro subíndice, como · $ X -> [] · * Directamente después de una rodaja de lista, como · (, ) [] · Directamente después de una Sub Llamada (con o sin parámetros), como · Get_aref ($ x, $ y) -> [] · Directamente después de una llamada de método (con o sin parámetros), como · $ Obj-> get_aref -> [] · En particular, ninguno · $ AREF -> [] · Sin subíndices intermedios ni expresiones más complicadas como · ($ FISTROSEF || $ SIBERARSEF) -> [] · Trabajará (todavía se considerarán errores de sintaxis); El primero debido a un artefacto del analizador Perl (específicamente, que el control de la comprobación nunca se llama OP_PADSV), y el segundo porque la cuestión de la precedencia hace que sea imposible sin estar debidamente integrado en el analizador YACC.
Datos :: postfixderef Software relacionado