use strict; use warnings; my @array = (1 .. 4); while (@array) { my $first = shift @array; print "[$first]"; push @array, $first / 2 if (!($first % 2)); }