# 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; }  • What is the param function? Jun 15 '16 at 20:50 • I have use CGI qw/:standard/ at the top of my script which imports the param() function. param() gets a value from the query string. Jun 15 '16 at 20:53 ## 1 Answer 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);

• By the way, if you think you should interpret an erroneous "0" parameter value as page 1, then you should use the || operator instead. Jun 15 '16 at 21:05