in reply to Re^3: Here documents in blocks
in thread Here documents in blocks

this works

But this doesn't...

use strict; if (1) { print<<" END"; Here is some text which needs to be flush to the left margin END }

It works in the sense it compiles and runs but doesn't do as intended.

Replies are listed 'Best First'.
Re^5: Here documents in blocks
by Discipulus (Canon) on Dec 19, 2020 at 17:21 UTC
    This one?
    use strict; if (1) { $_=<<" END"; Here is some text which needs to be flush to the left margin END s/^\s+//gm; print; }

    L*

    There are no rules, there are no thumbs..
    Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

      Adding another bit:

      if (1) { $_= <<" END"; Here is some text which needs to be flush to the left margin and has indented parts END /^(\s*)/; print s/^$1//gmr; }

      Update:
      Here is another one:

      if (1) { print <<" EOT" =~ s/^(\s*)//r =~ s/^$1//gmr; Here is some text which needs to be flush to the left margin and has indented parts EOT }

      Greetings,
      -jo

      $gryYup$d0ylprbpriprrYpkJl2xyl~rzg??P~5lp2hyl0p$