Andrew,
Have you tried escaping the "[" using "[["?
i.e.:
Execute ({ input => \'[[- $param[0] = [1,2,3]; -] <p>Done some
substitutions on param0 ... </p>',
Hope this helps.
ilia.
> -----Original Message-----
> From: Andrew O'Brien [mailto:[EMAIL PROTECTED]]
> Sent: Monday, October 23, 2000 2:31 AM
> To: [EMAIL PROTECTED]
> Subject: Embperl parser probs: nested strings w/ closing block tags
>
>
> Hi all,
>
> I've noticed a problem with the way Embperl parses certain strings
> that contain "-]" or "+]" when passed to Execute using the input hash
> element. I haven't tested with other tag types but I'm assuming they
> work (or don't in this case) similarly.
>
> It seems that Embperl treats a closing block tag as a real one when it
> is contained within an explicit string reference to the Execute
> function. Perhaps it would be easier to see from the examples
> below. The only things I've changed are the tag types surrounding the
> real block and/or the tags within the Execute'd string ref.
>
> This is annoying but not impossible to get around, once I'd figured
> out what was causing the error :) Since it is not what you'd expect to
> be happening (and isn't documented ;) I'd propose this as a bug. Or am
> I missing something intrinsic here ?
>
> Heres a proof of concept along the lines of the examples in the
> eg/x/Execute.pl file in the source. This fails using 1.3b[56] and
> EmbperlObject.
>
> A base file containing:
>
> <html><head><title>Blah</title></head>
> <body>
> [- Execute('*'); -]
> </body>
> </html>
>
> A file containing the following does not fail. Note the different
> block delimiters both within the string and surrounding the Execute
> statement.
>
> [+
> @q = ( );
> Execute ({ input => \'[- $param[0] = [1,2,3]; -] <p>Done some
> substitutions on param0 ... </p>',
> inputfile => 'Return array by reference',
> param => \@q }
> );
> @{ q[0] }->[2]; # prints "3"
> +]
>
> but either of the next two blocks *do* fail:
>
> [-
> @q = ( );
> Execute ({ input => \'[- $param[0] = [1,2,3]; -] <p>Done some
> substitutions on param0 ... </p>',
> inputfile => 'Return array by reference',
> param => \@q }
> );
> @{ q[0] }->[2]; # prints "3"
> -]
>
> [+
> @q = ( );
> Execute ({ input => \'[+ $param[0] = [1,2,3]; "";+] <p>Done some
> substitutions on param0 ... </p>',
> inputfile => 'Return array by reference',
> param => \@q }
> );
> @{ q[0] }->[2]; # prints "3"
> +]
>
> --
> Andrew O'Brien
> [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]