my @statusoption = ('Waiting Approval' , 'Denied' , 'Approved' , 'Orderred' , 'Building' , 'Built' , 'Shipped'); my $status = 'Approved'; my ($position, $flag); my @popped = grep{ $flag and $_ or $_ eq $status and $flag++ or $position++, 0 }@statusoption; print "position:$position new: @popped$/" __END__ position:3 new: Orderred Building Built Shipped