echo Range iterator outside integer range|splain Range iterator outside integer range (#1) (F) One (or both) of the numeric arguments to the range operator ".." are outside the range which can be represented by integers internally. One possible workaround is to force Perl to use magical string increment by prepending "0" to your numbers. #### sub range { my( $start, $end ) = @_; my @ret; while($start <= $end ){ push @ret, $start; $start++; } return @ret; } use bignum; my $x = 2**1024 for(range( $x , $x+2 )) { say }