Beste Weg, um zu vermeiden, "isn' T numeric in numeric eq (==)"-Warnung
#!/usr/bin/env perl
use warnings;
use 5.12.2;
my $c = 'f'; # could be a number too
if ( $c eq 'd' || $c == 9 ) {
say "Hello, world!";
}
Was ist der beste Weg, um zu vermeiden, das " Argument "f" isn ' T numeric in numeric eq (==) at ./perl.pl Zeile 7.'-Warnung?
Ich vermute, in diesem Fall könnte ich mit "eq" zwei mal, aber das sieht nicht gut aus.
Ich werde verwenden Sie "eq".
InformationsquelleAutor sid_com | 2010-11-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht sicher, warum Sie vermeiden möchten, erfolgt die Warnung. Die Warnung sagt Ihnen, dass es ein mögliches problem in Ihrem Programm.
Wenn du gehst, zu vergleichen eine Zahl mit einem string, der enthält unbekannte Daten, dann sind Sie entweder zu haben, um mit 'eq' für den Vergleich oder löschen Sie die Daten in irgendeiner Weise, so dass Sie wissen, es sieht aus wie eine Zahl.
Da ist es egal, ob der Vergleich erfolgt mittels == oder eq, der richtige Weg ist die Verwendung der string-Vergleichsoperator für strings vergleichen. Ausschalten der Warnung ist vergleichsweise mehr Arbeit, als einfach mit der rechten-operator, um mit zu beginnen; nicht zu erwähnen, dass die gesamte Grundlage für die Frage ist die skizzenhafte Ansicht, dass "eq" doppelt "sieht nicht gut aus."
$c
ist ein string, und es gibt keine Mathematik, die hier. So behandeln Sie es wie ein string, um Himmels Willen, und nur zitieren, die neun. 🙂InformationsquelleAutor Dave Cross
Könnten Sie auch deaktivieren Sie diese Kategorie von Warnungen vorübergehend:
InformationsquelleAutor Eugene Yarmash
Die offensichtliche Weg, um zu vermeiden, eine Warnung über einen Vergleich zwischen einer nicht-numerischen, um eine numerische , es nicht zu tun! Warnungen gibt es für Ihren Vorteil - Sie sollten nicht ignoriert oder umgangen.
Zu beantworten, was ist der besten, wie Sie Sie brauchen, um mehr Kontext - also was sagt
$c
darstellen, und warum ist es notwendig, vergleichen Sie es tun'd'
oder9
(und warum nicht$c eq '9'
)?das ist, was ich ihn gebeten, zu klären!
InformationsquelleAutor Alnitak
Mit einem regulären Ausdruck, um zu sehen, ob das eine Zahl:
InformationsquelleAutor diego rubens