* "David E. Wheeler" <[email protected]> [2010-03-15T14:56:48]
> > 
> >            C<<< open(X, ">>thing.dat") || die $! >>>
> >            C<< $foo−>bar(); >>
> > 
> >        which is presumably easier to read than the old way:
> > 
> >            C<open(X, "E<gt>E<gt>thing.dat") || die $!>
> >            C<$foo−E<gt>bar();>
> 
> My interpretation of that was that any angle brackets inside should be
> considered literal, and thus escaped. The whole point of `<<   >>` AFAICS was
> to allow one to use literal brackets without escaping them, as one must do in
> `<>`.

Right -- but that's because they're potentially-matching right brackets.  For
example, this line is valid Pod with no formatting codes:

  "Hello world." >> cout;

We don't need to use E<gt>E<gt> because there's no open quote to give the
closing one special significance.  If we did this, though:

  C<"Hello world." >> cout;>

...then the first > closes the C<>.

What if we wanted:

  C<< ls > F<ls-file.txt> >>

In other words, the only change /C<{2,}\s+/ has over /C<{1}/ is that it changes
the number of >'s that are needed to close that code.  Fewer >'s than that are
just text.

Frustrating.

-- 
rjbs

Reply via email to