I think what you meant to ask is if there is too much going on in that statement. I will give a weighted answer of 70% for "just too much" and 30% for "poorly worded". With that said I didn't really like any of the alternatives that much though shmen's (
Re: How Much Is Too Much (on one line of code)?
) came close (I consider &&= a bit too obscure so I tend to avoid it).
Here's some untested code that I mostly like:
sub get_country {
my( $card ) = @_;
my $tmp= $card->country;
return "" if ! defined $tmp || $tmp eq "" || $tmp eq 'gbr';
return uc "[$tmp]"
}
my $country = get_country( $card );