while () { my ($prefix, $rest) = split; foreach my $env (split /;/, $rest) { my ($env_name, $machine) = split /:/, $env; print "$prefix $env_name $machine\n"; } } __DATA__ Docs Legal:Legal100-106;QA:QAServer5 Legal Legal:Legal15;QA:QAServer5 Funding QA:Alpha,Beta;PROD:PROD1-5