#!/usr/bin/perl use strict; use warnings; my @List = (1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1); my $Tag = 5; my @Result = (); while (@List) { push @Result, splice @List, 0, 3 if shift @List == $Tag } use Data::Dumper; print Data::Dumper->new([\@Result], [qw[Result]])->Indent(0)->Dump,"\n"; __END__