#!/usr/bin/perl use 5.014; use strict; use warnings; use autodie; my @arrX = (0,4194304,8388608); my $count = 0; #makes no difference in sub my $max = 300; #makes no difference in sub sub sendX { my ($data) = shift @arrX; return if not defined $data; # use defined, not numeric/boolean say $data; } for (1 .. $max) { #could be 1 .. scalar(@arrX)??? sendX; } __END__ Prints: 0 4194304 8388608