in reply to How Much Is Too Much (on one line of code)?

Like almost everyone else, I agree that this is too much logic in one line. And as has already been stated, the biggest problem is the left to right and right to left logic separation when using the conditional if assignment. To keep the code as close to the original as possible and fix this deficiency, simply use the &&= operator.
my $country = $card->country; $country &&= $country eq 'gbr' ? '' : uc "[$country]";
I personally would probably do the following. First declare the initial value. Then perform any business logic to control default countries. Finally assign formatting to the final result.
my $country = $card->country; $country = '' if $country eq 'gbr'; $country &&= uc "[$country]";
- Miller