Peter Mairhofer: Use of uninitialized value in string eq (...)

Beitrag lesen

Hallo!

Ich arbeite grundsätzlich mit "use strict". Allerdings stören mich ein paar Warnungen, denn Warnungen heissen für mich immer, dass etwas nicht zu 100% passt.
Ich bekomme solche in der Richtung:

Use of uninitialized value in string eq (...)

z.B. bei dieser Callbackfunktion:

sub ParseHTMLStart()
{
    my ($self, $tagname, $attr, $src) = @_;
    if($tagname) # IN DIESER ZEILE TRITT DIE MELDUNG AUF!
(...)

Das ist die Callback Funktion die ich für den HTML::Parser verwende. Offensichtlich ist aus irgendeinem Grund die Variable $tagname nicht gesetzt. Wie kann ich in Perl das überprüfen (in PHP würd ich bei sowas zuerst ein if(isset()) drüberlaufen lassen.

Danke!

Peter

PS: Das gleiche Problem tritt z.B. auch bei LWP::UserAgent auf. Einige schei** Seiten halten sich nicht an den Standard und schreiben solchen Schrott in den Header:

location: /dfgdfg

Diesem ekelhaften Verhalten wollte ich entgegenwirken und hab sowas eingebaut:

if($res->headers->{'location'} ne "")
{
  # HOL DIE URL AUF DIE WEITERGELEITET WERDEN SOLL.
}

Offensichtlich kommt da auch dieser Fehler, wenn es im Header keine 'location:' gibt..