#!/usr/bin/perl use warnings; use strict; my $tag = shift; die ("You need to enter a tag.\n") unless ( $tag =~ /\w+/ ); my $count = 0; my @headers = (); my %hash = (); while(my $d = ) { $count++; chomp ($d); if ( $count < 2 ) { @headers = split/:/, $d; } else { my @temp = split/:/, $d; push @{$hash{$headers[$_]}}, $temp[$_] for ( 0 .. $#headers ); } } if ( defined($hash{$tag}) ) { print "$tag = ",join( ',', @{$hash{$tag}} ), "\n"; } else { print "Tag $tag not found.\n"; } __DATA__ AGE:EYES:HAIR 32:BLUE:BLONDE 54:BROWN:BROWN