En el perllexwarn se definen todas las advertencias que es posible establecer.¿Cómo obtener el conjunto de comprobaciones de advertencia actualmente habilitadas en el módulo perl?
Pero aquí no hay nada, cómo imprimir las advertencias que tengo habilitadas actualmente.
ej .:
use strict;
use warnings;
print warnings::enabled->pretty_print(); #fictional...
¿Cómo es posible?
ejemplo:
use strict;
use 5.012;
use warnings;
my $aaa;
say "$aaa";
say warnings::enabled("uninitialized") ? "yes" : "no";
Lo anterior es la salida:
Use of uninitialized value $aaa in string at y line 6.
no
así, el nivel de advertencia es "sin inicializar" se "ajuste", debido a que sus impresiones una advertencia, pero no el warnings::enabled("uninitialized")
vuelve true
.
derecho, es destinado a ser utilizado por los autores del módulo, para determinar si el código que está utilizando el módulo ha activado las advertencias. Si no es un autor del módulo, y coloca "usar advertencias" en su secuencia de comandos, entonces ya sabe que están encendidos, no hay ninguna posibilidad de verificarlos. –
@Dondi Michael Stroma, entonces 'use warnings' es lo mismo que' use warnings qw (all) '? Y cuando alguien usa 'use uni :: perl', ¿qué advertencia se establecerá y qué no? (Puede leer el código fuente para verificarlo) pero de todos modos, aquí debe haber alguna manera de verificar qué bits están activados. P.ej. de alguna manera con $ {^ WARNING_BITS} o tan ... – jm666
También depende de cómo llame a su script. 'perl -le 'usa advertencias; imprimir $^W, advertencias :: habilitado ("no inicializado"); '' devolverá '00' pero con' -w' devolverá '11'. –