Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re^2: determine the variable causing the error: Use of uninitialized value

by AnomalousMonk (Archbishop)
on Apr 13, 2017 at 18:55 UTC ( [id://1187867]=note: print w/replies, xml ) Need Help??


in reply to Re: determine the variable causing the error: Use of uninitialized value
in thread determine the variable causing the error: Use of uninitialized value

... which version of Perl are you using?

ruqui: This is an important question. The boon you seek was added with Perl version 5.10:

c:\@Work\Perl>perl -wMstrict -le "print qq{perl version: $] \n}; ;; my $x; print $x; printf '%s', $x; " perl version: 5.008009 Use of uninitialized value in print at -e line 1. Use of uninitialized value in printf at -e line 1. perl version: 5.010001 Use of uninitialized value $x in print at -e line 1. Use of uninitialized value $x in printf at -e line 1.


Give a man a fish:  <%-{-{-{-<

Replies are listed 'Best First'.
Re^3: determine the variable causing the error: Use of uninitialized value
by ruqui (Acolyte) on Apr 13, 2017 at 19:23 UTC
    AnomalousMonk it's correct what you say, but it only work with scalars, it doesn't work with more complex structures like hashes (or references to hashes):

    EXAMPLE:

    perl -wMstrict -le 'print qq{perl version: $] \n};;; my $x; my %y= (" +h"=>1, "i"=>2); print $x, $y{x}; printf "%s", $x;'
    OUTPUT:
    perl version: 5.018002 Use of uninitialized value $x in print at -e line 1. Use of uninitialized value in print at -e line 1. Use of uninitialized value $x in printf at -e line 1. </b>
      > it doesn't work with more complex structures like hashes (or references to hashes)

      To rephrase it, your problem are undefined elements of data structures like $h{x}.

      I don't think there is any out of the box solution and you'd need to send a feature request.

      As a side note: a hack could be to add a signal handler which parses the OP tree at the caller for all undefined entries .

      But that's far from trivial.

      Cheers Rolf
      (addicted to the Perl Programming Language and ☆☆☆☆ :)
      Je suis Charlie!

        Thank you for your suggestion Rolf, what should I do in order to send a feature request?

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (3)
As of 2024-04-25 23:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found