NAME
Cac::ObjectScript - Source Filter for embedding ObjectScript expressions in Perl
SYNOPSIS
use
Cac::ObjectScript;
my
$a
= 1;
$a
= <? :a +1:>:
<:K ^foobar(:a):>
no
Cac::ObjectScript;
# disable source filter
DESCRIPTION
This module allows you to embed ObjectScript expressions enclosed in "<?" ... ":>" or ObjectScript statements in "<:" ... ":>"
The expressions are not evaluated, they are compiled into ObjectScript functions for everlasting speed.
You can use bind variables using :var
notation.
Generated routines are named CPERLxxxxxxxxxxxxxxxxxxxxxxxxx
where each x
stands for a hexadecimal digit.
This is currently the md5sum (except last 7 digits) over the version of this module and the expression.
Anyway this may change (do not rely on that :), but I gurarantee that I only generate routines named "CPERL*".
If you just want to evaluate a Cache-String (i.e: a non constant expression) use CacEval $string
of the Cac
package.
You could also the following instead:
my
$eval
=
"K GeorgeBush"
;
# this is a political statement :)
<: @:
eval
:>
but it doesn't look so fine :) If you got this, you've probably understand that module.
If you insist to write order-loops, try something like this:
my
$a
=
""
;
do
{
$a
= <?
$order
(^rOBJ(:a)):>;
"$a\n"
;
}
while
length
$a
;
EXPORTS
none.
BUGS
Design: This Module creates a routine
for
every <[:?] ... :> expression.
It should create a single routine
for
each
Perl source file.
(The current design
"eats"
routine-buffers)
I
'm going to change that but that'
s not too high on
my
priority list.
(Finding a girlfriend is :)
SEE ALSO
Cac, Cac::Global, Cac::Routine, Cac::Util, Cac::Bind.
AUTHOR
Stefan Traby <stefan
@hello
-penguin.com>