Re: Modifiers and variables

William McKee <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.petal
Message-ID <[email protected]>
Hey Fergal,

Good to hear from you.


> Last year when I was hacking Petal, I changed the modifier code so that it
> examined the modifier at runtime to see if it was new style or old style.
> For an old style modifier it just passed in the whole string to the process()
> method as usual. If it was new style, it parsed the string a set of function
> arguments and passed them to the new_process method.

So you've been down this road too.


> This allowed me to do
> 
> mod:this/that "some string"
> 
> (I think that'sargument syntax, it's been a while)

If that's inside of an attribute, you'd need to use single quotes or
escape those double quotes.


> Looking at the current code in Petal/Hash.pm

<snip>

> just changing that last line to
> 
> 		if ($module->can("new_process")

Ahh, so this is how you differentiate between new style and old style
modifiers.


> 		{
> 		    # parse_args() is not correct but you get the idea
>         my @args = parse_args($key); 

Could we draw this in from the work you did? I tried to find where you
did that in Petal::CodePerl but couldn't find a parse_args sub. I'm
guessing you used a different name or didn't extract the code into a
subroutine. Could you give me a pointer?


> would mean that no one has to parse TALES expressions in their modifiers,
> Petal would do it itself and you could then do arbitrarily complex stuff in
> the arguments to modifiers,
> 
> truncate:big/long/string max/string/length

If I understand you correctly, this sounds great. Is TALES where
modifiers and the like are defined? I get TAL/TALES/METAL confused. I
think that the proposed subroutine would do that. Nonetheless, I'd like
to see your example (with the exception that the TALES expression cannot
contain numbers).


Thanks,
William

-- 
Knowmad Services Inc.
http://www.knowmad.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.