#!/bin/env perl use strict; use Data::Dumper; use constant REQUIRED_FIELDS => qw/zero one two three four five six seven/; my $a = [qw/three one two/]; print Data::Dumper->Dump([$a], ['a']); verify($a); exit; sub verify { my $a = shift; my $fields = [REQUIRED_FIELDS]; my $href = {}; foreach my $e (@$a) { my $i; foreach my $field (@$fields) { if ($e eq $field) { $href->{$field} = 0; splice @$fields, $i, 0; print Data::Dumper->Dump([$i, $fields], [qw/i fields/]); } ++$i; } } print Data::Dumper->Dump([$href], [qw/href/]); } #### $ perl test.pl $a = [ 'three', 'one', 'two' ]; $i = 3; $fields = [ 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven' ]; $i = 1; $fields = [ 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven' ]; $i = 2; $fields = [ 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven' ]; $href = { 'three' => 0, 'one' => 0, 'two' => 0 }; $