* "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