develooper Front page | perl.perl5.porters | Postings from April 2000

Re: [ID 20000403.009] uninitialised concatenation???

From:
Tom Christiansen
Date:
April 4, 2000 08:22
Subject:
Re: [ID 20000403.009] uninitialised concatenation???
Message ID:
13233.954861728@chthon
my(%h, $x, $y, $z);
%h = ($x => $y . $z);
Use of uninitialized value in concatenation (.) at - line 2.
Use of uninitialized value in concatenation (.) at - line 2.
Use of uninitialized value in list assignment at - line 2.

No, I was assigning a hash.

my(%h, %g, $x, $y, $z);
%h = ($x => $y . $z);
%g = %h;
Use of uninitialized value in concatenation (.) at - line 3.
Use of uninitialized value in concatenation (.) at - line 3.
Use of uninitialized value in list assignment at - line 3.

There was no list on either side.  Those are just hashes.
It's an "accident of the compiler's implementation" that
this turns into a list.  It could detect this and do something
else.   

my(%h, %g, $x, $y, $z);
%h = ("$x" => $y . $z);
%g = %h;
Use of uninitialized value in string at - line 2.
Use of uninitialized value in concatenation (.) at - line 2.
Use of uninitialized value in concatenation (.) at - line 2.

List assignment?  What list assigment?  This must be wrong.

my(@a, $x, $y, $z);
@a = ($x, $y . $z);
Use of uninitialized value in concatenation (.) at - line 2.
Use of uninitialized value in concatenation (.) at - line 2.

Huh?  Why didn't this complaint?  It's a list assignment!
Isn't it? 

my(@a, $x, $y, $z);
@a = ("$x", "$y$z");
Use of uninitialized value in string at - line 2.
Use of uninitialized value in concatenation (.) at - line 2.
Use of uninitialized value in concatenation (.) at - line 2.

my(@a, %h, $x, $y, $z);
@a = ($x => $x, "$x", "$y$z", undef() => $x.$y.$z);
%h = ($x => "@a", @a => @a, $y => join($x,$y,$z), @a);
Use of uninitialized value in string at - line 2.
Use of uninitialized value in concatenation (.) at - line 2.
Use of uninitialized value in concatenation (.) at - line 2.
Use of uninitialized value in concatenation (.) at - line 2.
Use of uninitialized value in concatenation (.) at - line 2.
Use of uninitialized value in concatenation (.) at - line 2.
Use of uninitialized value in join at - line 3.
Use of uninitialized value in join at - line 3.
Use of uninitialized value in join at - line 3.
Use of uninitialized value in join at - line 3.
Use of uninitialized value in join at - line 3.
Use of uninitialized value in join at - line 3.
Use of uninitialized value in list assignment at - line 3.
Use of uninitialized value in list assignment at - line 3.
Use of uninitialized value in list assignment at - line 3.
Use of uninitialized value in list assignment at - line 3.
Use of uninitialized value in list assignment at - line 3.
Use of uninitialized value in list assignment at - line 3.
Use of uninitialized value in list assignment at - line 3.
Use of uninitialized value in list assignment at - line 3.

I ask you seriously: what it the *OPTIMAL* text you want to see here?
Let's pretend nothing is impossible.  What do you REALLY want?

--tom



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About