in reply to Variable scope in ternary ?: operator not propagating?

Because a variable only gets into scope *AFTER* the statement it's defined. That allows one to write:
my $var = $var; # Start with the $var from the enclosing scope. local $_ = $_;
So, in your example $bar comes into existance in the statement after the ?:.

Abigail