utiliza uso usan tres textos signos signo significa que para niños los interrogacion inicial expresar exclamacion excesivo con como admiracion perl operators boolean negation

perl - uso - textos con signos de interrogacion y admiracion para niños



Que hace !!(doble signo de exclamación) significa? (3)

¡Son solo dos ! booleanos no operadores sentados uno al lado del otro.

La razón para usar este idioma es asegurarse de recibir un 1 o un 0 . En realidad, devuelve una cadena vacía que numifica a 0. Sin embargo, generalmente solo se usa en contexto numérico o booleano.

A menudo verá esto en las competiciones de Code Golf , porque es más corto que usar el ternario ? : ? : operador con 1 y 0 ( $test ? 1 : 0 ) .

!! undef == 0 !! 0 == 0 !! 1 == 1 !! $obj   == 1 !! 100 == 1 undef ? 1 : 0 == 0 0 ? 1 : 0 == 0 1 ? 1 : 0 == 1 $obj ? 1 : 0 == 1 100 ? 1 : 0 == 1

En el siguiente código, de una publicación de blog de Alias , noté el uso del doble signo de exclamación. . Me preguntaba qué significaba y hacia dónde podría ir en el futuro para encontrar explicaciones para la sintaxis de Perl como esta. (Sí, ya busqué !! en perlsyn ).

package Foo; use vars qw{$DEBUG}; BEGIN { $DEBUG = 0 unless defined $DEBUG; } use constant DEBUG => !! $DEBUG; sub foo { debug(''In sub foo'') if DEBUG; ... }

ACTUALIZAR
Gracias por todas sus respuestas.

Aquí hay algo más que acabo de encontrar que está relacionado The List Squash Operator x!!


Debido a que otras tres respuestas afirman que el rango es "0" o "1", simplemente pensé que mencionaría que los booleanos en Perl (como los devuelven operadores como == , not , y así sucesivamente) son undef y 1 , no 0 y 1 .


no, no

Convierte el valor a booleano (o lo más parecido posible a Perl).