fever pointed out the right thing to do, but just for completeness' sake, your approach could be condensed, too. The obvious, naive version:
&usage unless (defined $user) or (defined $pass) or (defined $config);
And the Once And Only Once version:
&usage unless grep defined, $user, $pass, $config;
That said, go with passing
GetOptions a hashref.
Makeshifts last the longest.