In der perllexwarn sind alle Warnungen definiert was möglich ist zu setzen.Wie erhalten Sie die derzeit im Perl-Modul aktivierten Warnschecks?
Aber hier ist nichts darüber, wie Sie ausdrucken, welche Warnungen ich derzeit aktiviert habe.
Z. B .:
use strict;
use warnings;
print warnings::enabled->pretty_print(); #fictional...
Wie ist es möglich?
Beispiel:
use strict;
use 5.012;
use warnings;
my $aaa;
say "$aaa";
say warnings::enabled("uninitialized") ? "yes" : "no";
Die oben AUSGABE:
Use of uninitialized value $aaa in string at y line 6.
no
so, die "nicht initialisierte" Warnung Kategorie "gesetzt", weil sein Druck einer Warnung, aber die warnings::enabled("uninitialized")
nicht zurückkehrt true
.
Richtig, es ist soll von Modulautoren verwendet werden, um festzustellen, ob der Code, der das Modul verwendet, Warnungen aktiviert hat. Wenn Sie kein Modulautor sind und in Ihrem Skript "Warnungen verwenden" verwenden, wissen Sie bereits, dass sie aktiviert sind. Es gibt keine Möglichkeit, sie zu überprüfen. –
@Dondi Michael Stroma, also 'Warnungen verwenden 'ist das gleiche wie' Warnungen verwenden qw (alle) '? Und wenn jemand 'uni :: perl benutzt, welche Warnung wird gesetzt und was nicht? (Sie können den Quellcode zur Überprüfung lesen), aber trotzdem - hier muss eine Möglichkeit sein, zu überprüfen, welche Bits eingeschaltet sind. Z.B. etwas mit den $ {^ WARNING_BITS} oder soo ... – jm666
Es hängt auch davon ab, wie Sie Ihr Skript aufrufen. 'perl -le 'verwendet Warnungen; print $^W, warnings :: enabled ("nicht initialisiert"); ''gibt' 00' zurück, aber mit '-w' wird' 11' zurückgegeben. –