for my $num (@$aref) { $flag = 1 if $num == 6; push $flag ? \@temp : \@result, $num; do {@temp = (); $flag = 0;} if $num == 7; } } push @result, @temp; print Dumper \@result;