NAME Data::FSM - Data object for Finite State Machine. SYNOPSIS use Data::FSM; my $obj = Data::FSM->new(%params); my $id = $obj->id; my $states_ar = $obj->states; my $transitions_ar = $obj->transitions; METHODS "new" my $obj = Data::FSM->new(%params); Constructor. * "id" FSM id. It's optional. Default value is undef. * "states" Reference to array with Data::FSM::State instances. Default value is []. * "transitions" Reference to array with Data::FSM::Transition instances. The used states in transition must be a in "states" values. Default value is []. Returns instance of object. "id" my $id = $obj->id; Get FSM id. Returns number. "states" my $states_ar = $obj->states; Get list of FSM states. Returns reference to array with Data::FSM::State instances. "transition" my $transitions_ar = $obj->transitions; Get list of FSM transitions. Returns reference to array with Data::FSM::Transition instances. ERRORS new(): From Data::FSM::Utils::check_transition_objects(): Parameter 'transitions' check hasn't defined state objects. Parameter 'transitions' contains object which has 'from' object which isn't in defined objects. Reference: %s Parameter 'transitions' contains object which has 'to' object which isn't in defined objects. Reference: %s From Mo::utils::Array::check_array_object(): Parameter 'states' must be a array. Value: %s Reference: %s Parameter 'states' with array must contain 'Data::FSM::State' objects. Value: %s Reference: %s Parameter 'transitions' must be a array. Value: %s Reference: %s Parameter 'transitions' with array must contain 'Data::FSM::Transition' objects. Value: %s Reference: %s From Mo::utils::Number::check_positive_natural(): Parameter 'id' must be a positive natural number. Value: %s EXAMPLE use strict; use warnings; use Data::FSM; use Data::FSM::State; use Data::FSM::Transition; my $state1 = Data::FSM::State->new( 'name' => 'From', ); my $state2 = Data::FSM::State->new( 'name' => 'To', ); my $fsm = Data::FSM->new( 'id' => 7, 'states' => [ $state1, $state2, ], 'transitions' => [ Data::FSM::Transition->new( 'from' => $state1, 'to' => $state2, ), ], ); # Print out. print 'Id: '.$fsm->id."\n"; print "States:\n"; foreach my $state (@{$fsm->states}) { print '- '.$state->name."\n"; } print "Transitions:\n"; foreach my $transition (@{$fsm->transitions}) { print '- '.$transition->from->name.' -> '.$transition->to->name."\n"; } # Output: # Id: 7 # States: # - From # - To # Transitions: # - From -> To DEPENDENCIES Data::FSM::Utils, Mo, Mo::utils::Array, Mo::utils::Number. REPOSITORY AUTHOR Michal Josef Špaček LICENSE AND COPYRIGHT © 2025-2026 Michal Josef Špaček BSD 2-Clause License VERSION 0.01