in reply to Use of uninitialized value in string eq

I'd guess that either $sitename or $ENV{'id'} is undefined. You can check using defined:

if( ! defined $sitename ) { # do something (initialize? skip 'eq' tests?) }

Update: Oh, and the 'error' you cite isn't an error, it's a warning. See "Use of uninitialized value%s" in perldiag.

Replies are listed 'Best First'.
Re^2: Use of uninitialized value in string eq
by maxcross7 (Initiate) on Sep 05, 2008 at 03:13 UTC
    Thank you for your quick response.
    Being a novice, I am not sure how to implement your responses.

    Where in the code should I insert this? Here is the code (required fields are normally populated):

    # This is the multicounter stats file $cntfile = ""; # To turn on logging $log = 1 else $log = 0 $log = 1; # If you want the counter output printed on your page $scrprint = 1 el +se 0 $scrprint = 1; # Location of your log file $logfile = ""; # Your own ip-address $own = ""; # -------------- Start program ----------------------------------- print "Content-type: text/html\n\n"; $date = localtime(time); open(INF,"$cntfile") || die "Can't open $cntfile to read: $! \n"; seek(INF,0,0); @data = <INF>; foreach $i (@data) { ($sitename,$counter,$ip_address) = split(/=/,$i); chop $ip_address; $sitename =~ s/ //g; $counter =~ s/ //g; $ip_address =~ s/ //g; $visitor = $ip_address; if ($sitename eq $ENV{'id'} && ($visitor eq $ENV{'REMOTE_ADDR'}) || ($ +own eq $ENV{'REMOTE_ADDR'})) { print $counter if ($scrprint eq "1"); exit; } else { if ($sitename eq $ENV{'id'}) { $counter++;<br> print $counter if ($scrprint eq "1"); open(ART,"$cntfile") || die "Can't open $cntfile to read: $! \n"; @data = <ART>; close(ART); open(ART,">$cntfile") || die "Can't open $cntfile to write: $! \n"; foreach $line (@data) { flock(ART,2); $line =~ s/$ENV{'id'} = [0-9]+ = [0-9]+.[0-9]+.[0-9]+.[0-9]+/$ENV{'id' +} = $counter = $ENV{'REMOTE_ADDR'}/g; print ART $line; } close(ART); if ($log eq "1") { open(OUTF,">>$logfile") || die "Can't open $logfile to write: $! \n"; print OUTF "$date | $ENV{'id'} | $counter | $ENV{'REMOTE_ADDR'} | $ENV +{'HTTP_REFERER'}\n"; close(OUTF); } } } }
      • Please use <CODE> tags. Instructions are in Writeup Formatting Tips
      • The diagnostic/error checking code for $sitename should be placed immediately after $sitename receives a value, via the "split" function.
      • $sitename receives its value from the INF ($cntfile) file. Looking at the contents of that file should help show what it would contain.
      • You should also check your $logfile -e it should contain the contents of $ENV{'id'}.

           Have you been high today? I see the nuns are gay! My brother yelled to me...I love you inside Ed - Benny Lava, by Buffalax