FSA::Rules 0.26
Sponsored Links
FSA::Rules 0.26 Ranking & Summary
File size:
0.030 MB
Platform:
Any Platform
License:
Perl Artistic License
Price:
Downloads:
7119
Date added:
2006-10-02
Publisher:
David Wheeler and Curtis Poe
Publisher URL:
http://search.cpan.org/~d
FSA::Rules 0.26 description
FSA::Rules is a Perl module to build simple rules-based state machines in Perl.
Synopsis
my $fsa = FSA::Rules->new(
ping => {
do => sub {
print "ping!n";
my $state = shift;
$state->result(pong);
$state->machine->{count}++;
},
rules => [
game_over => sub { shift->machine->{count} >= 20 },
pong => sub { shift->result eq pong },
],
},
pong => {
do => sub { print "pong!n" },
rules => [ ping => 1, ], # always goes back to ping
},
game_over => { do => sub { print "Game Overn" } }
);
$fsa->start;
$fsa->switch until $fsa->at(game_over);
This class implements a simple state machine pattern, allowing you to quickly build rules-based state machines in Perl. As a simple implementation of a powerful concept, it differs slightly from an ideal DFA model in that it does not enforce a single possible switch from one state to another. Rather, it short circuits the evaluation of the rules for such switches, so that the first rule to return a true value will trigger its switch and no other switch rules will be checked. (But see the strict attribute and parameter to new().) It differs from an NFA model in that it offers no back-tracking. But in truth, you can use it to build a state machine that adheres to either model--hence the more generic FSA moniker.
FSA::Rules uses named states so that its easy to tell what state youre in and what state you want to go to. Each state may optionally define actions that are triggered upon entering the state, after entering the state, and upon exiting the state. They may also define rules for switching to other states, and these rules may specify the execution of switch-specific actions. All actions are defined in terms of anonymous subroutines that should expect an FSA::State object itself to be passed as the sole argument.
FSA::Rules objects and the FSA::State objects that make them up are all implemented as empty hash references. This design allows the action subroutines to use the FSA::State object passed as the sole argument, as well as the FSA::Rules object available via its machine() method, to stash data for other states to access, without the possibility of interfering with the state or the state machine itself.
Download nowSynopsis
my $fsa = FSA::Rules->new(
ping => {
do => sub {
print "ping!n";
my $state = shift;
$state->result(pong);
$state->machine->{count}++;
},
rules => [
game_over => sub { shift->machine->{count} >= 20 },
pong => sub { shift->result eq pong },
],
},
pong => {
do => sub { print "pong!n" },
rules => [ ping => 1, ], # always goes back to ping
},
game_over => { do => sub { print "Game Overn" } }
);
$fsa->start;
$fsa->switch until $fsa->at(game_over);
This class implements a simple state machine pattern, allowing you to quickly build rules-based state machines in Perl. As a simple implementation of a powerful concept, it differs slightly from an ideal DFA model in that it does not enforce a single possible switch from one state to another. Rather, it short circuits the evaluation of the rules for such switches, so that the first rule to return a true value will trigger its switch and no other switch rules will be checked. (But see the strict attribute and parameter to new().) It differs from an NFA model in that it offers no back-tracking. But in truth, you can use it to build a state machine that adheres to either model--hence the more generic FSA moniker.
FSA::Rules uses named states so that its easy to tell what state youre in and what state you want to go to. Each state may optionally define actions that are triggered upon entering the state, after entering the state, and upon exiting the state. They may also define rules for switching to other states, and these rules may specify the execution of switch-specific actions. All actions are defined in terms of anonymous subroutines that should expect an FSA::State object itself to be passed as the sole argument.
FSA::Rules objects and the FSA::State objects that make them up are all implemented as empty hash references. This design allows the action subroutines to use the FSA::State object passed as the sole argument, as well as the FSA::Rules object available via its machine() method, to stash data for other states to access, without the possibility of interfering with the state or the state machine itself.
FSA::Rules 0.26 Screenshot
Sponsored Links
FSA::Rules 0.26 Keywords
Bookmark FSA::Rules 0.26
FSA::Rules 0.26 Copyright
WareSeeker periodically updates pricing and software information of FSA::Rules 0.26 full version from the publisher, so some information may be slightly out-of-date. You should confirm all information before relying on it. Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future development of FSA::Rules 0.26 Edition. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed
FSA::Rules 0.26 Related Software
KWallBuilder is a tool for adding iptable rules based on the responses of the user.
XML::Rules is a Perl module that can parse XML & process tags by rules starting from leaves.
Lingua::Phonology::Rules is a Perl module for defining and applying phonological rules.
Tk::form is a Perl module with a geometry manager based on attachment rules.
Very restrictive set of firewall rules script is a sample firewall for ip_tables.
Set up iptables NAT rules is an example IPTables 1.2.1 script for a multi-homed firewall.
SigTranslator is a project able to translate IDS signatures e.g. from Snort rules to Dragon rules and vice versa.
NT Logon++ is a fork of ntlogon.py with some additions such as non-main group rules and fragmented rules.
pyAwale is a pure Python implementation of the Ivory Coast rules for Awale.
My Software
You have not saved any software. Click "Save" next to each software to save it to your software basket
Related Search
TOP POPULAR DOWNLOAD