while( ) { print if /^Header2:/ .. eof; } __DATA__ SMTP 0<001501c4db9b$db8b2680$2d01a8c0@ryand9v889t9uc> .X-Intermail-Unknown-MIME-Type=unparsedmessage Header2: ## my $input = do { local $/ = undef; }; if ( $input =~ /^(Header2:.+)/ms ) { print $1; } #### my $input; { local $/ = undef; $input = ; } print join '', ( split /^(Header2:)/m, $input, 3 )[ 1, 2 ]; #### print join '', ( split /^(?=Header2:)/m, $input, 2)[1]; #### perl -ne 'print if /^Header2:/ .. eof' testdata.txt perl -0777 -ne '/^(Header2:.+)/ms and print $1' testdata.txt perl -0777 -pe '$_=join q//,(split /^(Header2:)/m,$_,3)[1,2]' testdata.txt perl -0777 -pe '$_=join q//,(split /^(?=Header2:)/m,$_,2)[1]' testdata.txt