use List::Util qw(min); for my $value (@a[0 ... min($#a, $N)]) { }