in reply to Re^4: Loop Array - If $var is something write values until $var is something else
in thread Loop Array - If $var is something write values until $var is something else

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

Replies are listed 'Best First'.
Re^6: Loop Array - If $var is something write values until $var is something else
by AnomalousMonk (Archbishop) on Sep 30, 2018 at 02:01 UTC
    elsif ( $item !~ m{^String} ) { ... }

    My interpretation is that the  StringA etc. input items are supposed to represent any input strings at all rather than strings that all start with 'String'. I think that only the 'JOB::...', 'Something' and 'Something Else' strings are supposed to be constants.


    Give a man a fish:  <%-{-{-{-<