Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^3: The error says the value is uninitialized, but it works anyway

by jcb (Parson)
on Aug 18, 2019 at 22:30 UTC ( [id://11104665]=note: print w/replies, xml ) Need Help??


in reply to Re^2: The error says the value is uninitialized, but it works anyway
in thread The error says the value is uninitialized, but it works anyway

Hmmm... You are right. I have edited my earlier post to correct the misinformation.

It seems that I had confused Perl, SQL, and Lisp while writing that. As I recall, there is only one undef value in perl, and DBI (see also DBI recipes) maps SQL NULL and Perl undef. Here are the tests I ran before writing that post:

  • $ perl -we 'print "T\n" if "foo" eq "foo"'
    T
  • $ perl -we 'print "T\n" if undef eq "foo"'
    Use of uninitialized value in string eq at -e line 1.
  • $ perl -we 'print "T\n" if undef eq undef'
    Use of uninitialized value in string eq at -e line 1.
    Use of uninitialized value in string eq at -e line 1.
    T

Spotted the missing test yet? Try:

  • $ perl -we 'print "T\n" if undef eq ""'
    Use of uninitialized value in string eq at -e line 1.
    T

Since the message specifically mentions use of undef in eq, I had assumed that eq actually sees the undefined value, instead of stringifying it like any other value. Wrong!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11104665]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (2)
As of 2024-04-19 01:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found