in reply to Perl 5.10.1 versus 5.8.8 with $#{}

This is highly unlikely to be related to a difference between 5.10 and 5.8.8 (and also easier written as $#$a). Please reduce your code to a small, self-contained program that still exhibits the behaviour.

Maybe if you're not using strict and $a contains a string and not a reference then @{ $a } could evaluate to 0 and that behaviour maybe changed between 5.8 and 5.10, but again, I think this is unlikely.

Update: I was wrong - it is a change in behaviour between 5.10 and 5.8 regarding to $#{ @$foo }. Using the $#$... syntax avoids the problem.