use strict; my (@year, @name, @asterisk); while() { chomp; my $line = $_; while ($line =~ m/%(\d\d\d\d)/g) { push @year, $1; } while ($line =~m/\$([A-Z]+)/g) { push @name, $1; } while ($line =~m/\*([^000]+)/g) { push @asterisk, $1; } } print join("\n", @year); print "\n"; print join("\n", @name); print "\n"; print join("\n", @asterisk); print "\n"; __DATA__ 0004$ADAM0002*330004%19770004$BOB 0002*430004%1967 0007$AD0002*110004%19750004$BOB 0001*440004%1961