Thanks for elaborating what you meant.
But what you said is
> > > > The thing about Perl is that it lets you execute Perl code during the parse.
- a source filter is just preprocessing like in C. (just built-in and using Perl as meta language)
- function declarations without prototypes effect if parens are necessary when parsing or an error is thrown. No idea if this exist in other languages. IIRC you don't need any parens in Ruby
- prototypes in declarations also effect parsing of arguments and parsing errors. That's why they are discouraged if not explicitly meant for syntax extension.
BUT as you already said these are declarations, they don't
"let you execute Perl code during the parse" .
You also said contrary to Lisp, which doesn't make much sense since Lisp (or even TCL) let me execute macros at parse time.°
Though I have to admid I'm aware about a bug in the regex syntax which allows the execution of code at parse time by injecting a BEGIN block.
But I still need to be convinced that Perl executes more code during parsetime than other languages.
For instance JS doesn't allow any of the mentioned mechanisms for syntax extensions, with the effect that there are plenty of project with meta languages generating JS.
update
°) and reader macros make static parsing impossible (for the sake of creating a DSL)
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.