use strict; use warnings; my @labels = ('fee', 'fi', 'fo', 'fum'); open(my $fh, '<', "folks.txt") || die "can't open folks: $!"; my @list; while (<$fh>) { chomp; push @list, [split /,/]; } for my $element (@list) { print "$labels[0],$element->[0],$element->[1]\n"; } for my $element (@list) { print "$labels[1],$element->[0],$element->[2]\n"; } for my $element (@list) { print "$labels[2],$element->[0],$element->[3]\n"; } for my $element (@list) { print "$labels[3],$element->[0],$element->[4]\n"; } #### use strict; use warnings; my @labels = ('fee', 'fi', 'fo', 'fum'); open(my $fh, '<', "folks.txt") || die "can't open folks: $!"; my @list; while (<$fh>) { chomp; push @list, [split /,/]; } for my $i (0 .. 3) { for my $element (@list) { print "$labels[$i],$element->[0],$element->[$i+1]\n"; } } #### use strict; use warnings; my @labels = ('fee', 'fi', 'fo', 'fum'); open(my $fh, '<', "folks.txt") || die "can't open folks: $!"; my @list; while (<$fh>) { chomp; my @line = split /,/; my %hash = (number => shift @line); for my $i (0 .. $#labels) { $hash{$labels[$i]} = $line[$i]; } push @list, \%hash; } for my $label (@labels) { for my $element (@list) { print "$label,$element->{number},$element->{$label}\n" } }