Here's my take on what I think you are after, I have omitted the "(could be removed)" items. The code:-
use strict; use warnings; use feature qw{ say }; open my $dataFH, q{<}, \ <<__EOD__ or die $!; JOB::HEREISASTRING Something StringA StringB StringC StringD Something Else StringE StringF StringG StringH JOB::HEREISANOTHERSTRING Something StringI StringJ StringK StringL Something Else StringM StringN StringO StringP __EOD__ chomp( my @cleared = <$dataFH> ); close $dataFH or die $!; my $flag; foreach my $item ( @cleared ) { if ( $item =~ m{^JOB} ) { say $item; next; } elsif ( $item !~ m{^String} ) { $flag = $item; next; } else { say qq{~~$flag~~$item}; } }
The output:-
JOB::HEREISASTRING ~~Something~~StringA ~~Something~~StringB ~~Something~~StringC ~~Something~~StringD ~~Something Else~~StringE ~~Something Else~~StringF ~~Something Else~~StringG ~~Something Else~~StringH JOB::HEREISANOTHERSTRING ~~Something~~StringI ~~Something~~StringJ ~~Something~~StringK ~~Something~~StringL ~~Something Else~~StringM ~~Something Else~~StringN ~~Something Else~~StringO ~~Something Else~~StringP
I hope this is helpful.
Cheers,
JohnGG
In reply to Re^5: Loop Array - If $var is something write values until $var is something else
by johngg
in thread Loop Array - If $var is something write values until $var is something else
by maikelnight
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |