in reply to Re: Re: Erm? Bug or not? Weird behaviour in hash / list conversion
in thread Erm? Bug or not? Weird behaviour in hash / list conversion

It's only the results of printing the assignment that is in error...at least that I've so far discovered.

Well, it doesn't have anything to do with the print() really. This avoids printing it directly:

$ perl -le '$_ = join "-", %h = (1,2,3,4,1,2,3,4); print "yes" if /--/ +' yes

By the way, I've noticed that map seems to make the problem go away (as does assigning to an array) but grep, reverse, and sort don't:

map { $_ } %h = ( 1,1, 1,1 ); # no undefined values. grep { 1 } %h = ( 1,1, 1,1 ); # undefs occur. sort %h = ( 1,1, 1,1 ); # undefs occur. reverse %h = ( 1,1, 1,1 ); # undefs occur.

-sauoq
"My two cents aren't worth a dime.";