Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^2: Are state machines just for parsing?

by samtregar (Abbot)
on Dec 08, 2004 at 22:03 UTC ( #413343=note: print w/ replies, xml ) Need Help??


in reply to Re: Are state machines just for parsing?
in thread Are state machines just for parsing?

That's a cool presentation. And the module looks great... except, why do I have to program Perl inside an XML file? This makes my skin crawl:

<workflow> <type>myworkflow</type> <state name="INITIAL"> <action name="upload file" resulting_state="uploaded" /> </state> <state name="uploaded" autorun="yes"> <action name="verify file" resulting_state="annotate"> <!-- everyone other than 'CWINTERS' must verify --> <condition test="$context->{user} ne 'CWINTERS'" /> </action> ...

I'd be much happier with:

my $workflow = Workflow::Generator->new(type => "myworkflow"); $state = $workflow->add_state(name => "INITIAL"); $state->add_action(name => "upload file", resulting_state => "uploa +ded"); $state = $workflow->add_state(name => "uploaded", autorun => "yes") +; $state->add_action(name => "verify_file", resulting_state => "annot +ate"); $condition = $state->add_condition(test => \&check_file);

It's more conscise and all the power of Perl is available for making repetitive structures from common data. If I ever decided to use Workflow I think Workflow::Generator would be my first project.

-sam


Comment on Re^2: Are state machines just for parsing?
Select or Download Code
Re^3: Are state machines just for parsing?
by lachoy (Parson) on Dec 09, 2004 at 02:33 UTC

    Well, the "perl in XML" part is entirely optional and is actually a recent addition. But I like the idea of creating it programmatically and it should be pretty easy, actually. I might swipe this for later -- with credit, of course...

    Chris
    M-x auto-bs-mode

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://413343]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (12)
As of 2015-07-06 15:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (77 votes), past polls