use strict; use warnings; my %seq; for (@data) { my ($tag) = split; no warnings 'uninitialized'; my $seq = ++$seq{$tag} ; print "$_ -> seqno = $seq\n"; }