use strict; use warnings; my @lines = ( '012345 NA13333 C C', '012345 NA13334 F F', '012345 NA13335 E F', '012346 NA13333 U U', '012346 NA13334 I I', '012346 NA13335 Y O'); foreach my $line (@lines) { next unless $line =~ m{^(\S+) NA(\d+) (.*)}; my ($site, $userID, $data) = ($1, $2, $3); print "SITE: $site USER: $userID DATA: $data\n"; }