my ( $c, $d ); 1 ? $c : $d = 'Hi'; #### my ( $c, $d ); $c = 'Hi'; #### my $d; 1 ? my $c : $d = 'Hi'; #### my $d; my $c = 'Hi'; #### $ perl -MO=Deparse -e 'my $c; 1 ? $c : my $d; $d' my $c; $c; $d; -e syntax OK #### $ perl -e '1 ? my $c : my $d' Invalid separator character '$' in attribute list at -e line 1, near "$c : my " Execution of -e aborted due to compilation errors. #### our $d = 'Out'; { 1 ? 0 : my $d; $d = 'In'; } say $d; #### our $d = 'Out'; { '???'; $d = 'In'; } say $d;