http://www.perlmonks.org?node_id=172719


in reply to Uninitialized value in string warnings (was: Warnings:)

You could try using diagnostics:-
just add the following to your program
use diagnostics;
you may need to comment out use strict; and remove the '-w' flag. What diagnostics does is give you a discription of what may be the problem.

In you particular case you are faced with using a possibly undefined variable as you have stated. You could either go ahead with your proposed idea, or "initialise" everything at the start of your code. EG
$a=""; $b=""; $c="";
Or you could put your potentialy uninitialied variable into a safe state after it is defined and before use eg.
$b = defined($b)?$b:"";


Hope this helps.

---If it doesn't fit use a bigger hammer

Replies are listed 'Best First'.
Re: Re: Warnings:
by Anonymous Monk on Jun 08, 2002 at 08:55 UTC

    I'm already using:

    #!perl.exe -w use strict; use diagnostics;

    but I don't want to turn off warnings or strict for the whole program to avoid this which I know about and am ready to except.

    See above (or below?) for my reply to the previous poster for why I was trying to avoid the ternary op.

    Thanks.