http://www.perlmonks.org?node_id=106342


in reply to print an array for paragraphs

split removes the separator from the resulting tokens:

my $str = "1\n2\n3\n4"; my @tokens = split( /\n/, $str ); # now tokens contain # ( "1", "2", "3", "4" ), NOT ( "1\n", "2\n", "3\n", "4\n" )

And no, $\ is not the output record separator, the output record separator is $,

   Update Above was not true, $\ is output record separator.
   $, was output field separator

But then again, with your code I don't understand the reasoning to use split. you could just

my $para = ..... # whatever. # so $para is ( possibly ) a multi-line parameter my $first_line_break = index( $para, "\n" ); if( $first_line_break > 0 ) { $lastHeading = substr( $para, 0, $first_line_break ); next; } if( $para =~ /mSOriginating/ && $para =~ /$msisdn/ ) { print $para; }

This would do, no?