in reply to Nested Ternary Operators

It probably doesn't work because you're using braces, instead of parenthesis.

Which means that you're setting $ref to an anonymous hash, if $hash_count is zero.

Consider this code, and it's output:
#!/usr/local/bin/perl -w use strict; use Data::Dumper; { my $a = 0; my $b = 1; my $c = 2; # # $a is 0, so the second term will be evaluated # $b is meaningless, and just used as a place holder # $c is 2, so 3 should be the answer. # my $right = $a ? $b : ($c ? 3 : 4); my $wrong = $a ? $b : {$c ? 3 : 4}; print "Right=", $right, "\n"; print "Wrong=", $wrong, "\n"; print Dumper ([\$right]); print Dumper ([\$wrong]); }

Odd number of elements in hash assignment at t line 17. Right=3 Wrong=HASH(0x80e6154) $VAR1 = [ \3 ]; $VAR1 = [ \{ 3 => undef } ];
--Chris

e-mail jcwren