which produceswhile (<DATA>) { 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
Update: That 100, 101 and 106 look a little suspicious. If you meant to expand the number intervals as well, a little extra code is needed:Docs Legal Legal100-106 Docs QA QAServer5 Legal Legal Legal15 Legal QA QAServer5 Funding QA Alpha,Beta Funding PROD PROD1-5
while (<DATA>) { my ($prefix, $rest) = split; foreach my $env (split /;/, $rest) { my ($env_name, $machine) = split /:/, $env; if ($machine =~ /^(\D+)(\d+)-(\d+)$/) { my $root = $1; foreach $num ($2..$3) { print "$prefix $env_name $root$num\n"; } } else { 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
-Mark
In reply to Re: Parsing a file - For differnet environments
by kvale
in thread Parsing a file - For differnet environments
by gpurusho
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |