I like this !! based solution the best. It's the most logical way to solve the problem - convert the arguments to boolean truth values, then sum them. You could do it for an arbitrarily long list of variables with:
use List::Util qw( sum );
if( 1 == sum( map { !!$_ } @inputs) ) {
...
}