The parameters passed to the Getopt::Long::GetOptions() function are different to the Getopt::Std::getopts() function. One way to call GetOptions() is to pass a hash with the keys specifying each option, and the values specifying a reference to a variable that will be set. Here is an example based on your code:
our ( $opt_d,$opt_h,$opt_l,$opt_L,$opt_i,$opt_o,$opt_P,$opt_p,
$opt_q,$opt_r,$opt_v,$opt_c,$opt_help );
GetOptions(
'd' => \$opt_d,
'h' => \$opt_h,
'l' => \$opt_l,
'L' => \$opt_L,
'i' => \$opt_i,
'o=s' => \$opt_s,
'P=s' => \$opt_P,
'p' => \$opt_p,
'q' => \$opt_q,
'r' => \$opt_r,
'v=s' => \$opt_v,
'c' => \$opt_c,
'help|?' => \$opt_help,
);
Since your code has a lot of options, you may want to look at storing the options in a hash, rather than individual variables. Check out the Getopt::Long manpage for more info.