my $page = url_param('page'); my $top = $page* 20); my $bottom = $top - 20; if ($page ne "") { for ( grep defined($_), ( reverse keys %upload )[ $bottom .. $top ] ) { do this if url_param exists ... } else { for ( grep defined($_), (reverse keys %upload )[ 0 .. 19] ) { do this if on first page, without url_param ... }