in reply to Re: Parsing barewords as sub/method calls?
in thread Parsing barewords as sub/method calls?

as I said

> > w/o predeclaring them?

Sometimes it's not possible to predeclare them.

Also please note that predeclaring them involves polluting the callers package.¹

sub predeclared; within_my_DSL { predeclare };

Thats not always desirable.

And the whole dynamic AUTOLOAD-mechanism doesn't make sense in combination with predeclared subs.

Cheers Rolf

( addicted to the Perl Programming Language)

update

¹) interesting question which comes up now, is if (and how) Ruby solves this... I suppose they don't care.

Replies are listed 'Best First'.
Re^3: Parsing barewords as sub/method calls?
by oiskuu (Hermit) on Nov 23, 2013 at 19:11 UTC
    What about the reverse? If within takes a code block, then a closure is formed with all the outer lexicals. Your caller now pollutes the DSL?
      Well taking data from outer scope is mostly intended.

      The standard example of DSLs are embedded HTML¹, so one could mix Perl code and variables from the caller.

      DSLs are one of the hype things in Ruby, showing an adequate alternative doesn't worsen Perl's market position. ;-)

      I think of DSLs as OOP without the need to always notate the $obj_refs and ->.

      Cheers Rolf

      ( addicted to the Perl Programming Language)

      ¹) NB: I don't propagate HTML-DSLs over template engines!

      But e.g. it's thinkable to have a DSL which describes a GUI and creates either HTML or TK or Wx code.