This demonstrates the use of the conditional and print to handle the undefined value without warning.
#!/usr/bin/perl
use strict;
use warnings;
use strict 'vars';
use Getopt::Std;
#Setting options
# u:username
# h:hostname
# p:password
# k:SSH Key
our ($opt_u, $opt_h, $opt_p, $opt_k);
getopts("u:h:p:k:");
#### TEST SECTION ###
print "\$opt_u=";
print $opt_u ? $opt_u : "Undefined" ;
print "\n";
print "\$opt_h=";
print $opt_h ? $opt_h : "Undefined" ;
print "\n";
print "\$opt_p=";
print $opt_p ? $opt_p : "Undefined" ;
print "\n";
print "\$opt_k=";
print $opt_k ? $opt_k : "Undefined" ;
print "\n";
$ ./test.pl
$opt_u=Undefined
$opt_h=Undefined
$opt_p=Undefined
$opt_k=Undefined
$ ./test.pl -u abc -h def -p ghi -k jkl
+
$opt_u=abc
$opt_h=def
$opt_p=ghi
$opt_k=jkl