Avoiding "warning: Use of uninitialized value" when fetching an integer CGI parameter I was using this code to fetch a CGI parameter:

$page = int(param('page'));


This sometimes results in:

warning: Use of uninitialized value in int


Is this a good solution to resolve this warning, or is better and more succinct code available?

if (defined param('page')) {
    $param_page = int(param('page'));
} else {
    $param_page = 1;
}
Standard practice is to scope variables using my.

Since Perl 5.10, the preferred way to write this is to use the logical defined-or operator to provide a default value when undef is encountered.

my $param_page = int(param('page') // 1);