Note that it's called the conditional operator. It's merely one of a few ternary operators.
If you wanted to use the conditional operator, it would look like the following:
$broken->{this} = $_ eq 'this' ? 1 : $broken->{this}; $broken->{that} = $_ eq 'that' ? 1 : $broken->{that}; $broken->{another} = $_ eq 'another' ? 1 : $broken->{another};
But that would be silly.
You want
$broken->{$_} = 1 for @list;
or
my @valid = qw( this that another ); $broken->{$_} = 0 for @valid; $broken->{$_} = 1 for @list;
or
my %valid = map { $_ => 1 } qw( this that another ); $broken->{$_} = 1 for grep $valid{$_}, @list;
or
my @valid = qw( this that another ); my %valid = map { $_ => 1 } @valid; $broken->{$_} = 0 for @valid; $broken->{$_} = 1 for grep $valid{$_}, @list;
In reply to Re: Ternary operators
by ikegami
in thread Ternary operators
by geistberg
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |