in reply to Re^4: OX and routing: how to declare something like /api/action.:format ($DEBUG++ MANIFEST)
in thread OX and routing: how to declare something like /api/action.:format
Keyword::Simple is super easy to use. You choose a keyword, say, "foo", and set up a handler for it like this:
package My::Keyword; use Keyword::Simple; sub import { Keyword::Simple::define(foo => \&_parse_foo); } sub _parse_foo { ...; } 1;
Then when someone uses your keyword (this is at compile time!) the _parse_foo sub will be called. It will be given a single parameter: a scalar ref - the reference to the string of Perl code currently being compiled. Now the _parse_foo can change that string, to change what gets compiled by Perl.
Syntax::Keyword::Val is a really simple example. The val keyword simply gets rewritten to Data::Lock::dlock my, so when people code this:
val $foo = 42;
That Perl code is rewritten to:
Data::Lock::dlock my $foo = 42;
Moops employs a lot of Keyword::Simple trickery.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: OX and routing: how to declare something like /api/action.:format ($DEBUG++ MANIFEST)
by mascip (Pilgrim) on Dec 09, 2013 at 09:30 UTC |