
demerphq at gmail
Aug 12, 2013, 6:36 AM
Post #29 of 30
(7 views)
Permalink
|
On 12 August 2013 14:44, Dave Mitchell <davem [at] iabyn> wrote: > On Sun, Aug 11, 2013 at 08:22:06PM +0200, Aristotle Pagaltzis wrote: >> * Damian Conway <damian [at] conway> [2013-08-11 01:20]: >> > And, ideally, the source code fragment being passed into the >> > overloading sub would not just be the "contents" of each constant >> > construct, but the entire syntax of the construct, including: >> > >> > - the delimiters used >> > >> > - any keyword used ('q', 'qq', 'qr', 'qx', 's', 'tr', or 'y') >> > >> > - any flags used (i.e. in the case of 's', 'tr', and 'y') >> > >> > >> > That is, reworking and extending your own example […] would output: >> > >> > source(qr/abc(?{})def$x/i) >> > source("ABC$a[$b+$c]DEF") >> > source(s{foo}{bar}gxms) >> > source(0xDeadCode) >> >> Wouldn’t it be better if these paraphernalia were passed in as separate >> arguments so that the Perl code won’t have to implement its own parsing >> on top of perl’s? > > Sorry, I don't understand the question. I think he means something like this: source( $quote, $start_delim1, $end_delim1, $modifiers, $text1, $start_delim2, $end_delim2, $text2 ); ie: source('qr', '/', '/', 'x', 'abc(?{})def$', undef, undef, undef); # qr/abc(?{})def$/ source('s', '{','}', 'gxms', 'foo', '{','}', "bar"); # s{foo}{bar}gxms source('tr','/','/','dc','abc','/','/','def'); # tr/abc/efg/dc I have no idea what to do with "0xDeadCode". Also one wonders if: qq"foo" and "foo" should be treated as the same thing or not. I could see: source('qq','"','"',undef,'foo'); # qq"foo" source('"','"','"',undef,'foo'); # "foo" Yves -- perl -Mre=debug -e "/just|another|perl|hacker/"
|