http://www.perlmonks.org?node_id=968043


in reply to Perl Framework Help

An outline of one way to do it ;)
+% find ! -name "*~" . ./ops.conf ./lib ./lib/Framework ./lib/Framework/Op ./lib/Framework/Op/PayBills.pm ./lib/Framework/Op/TakeOutTrash.pm ./lib/Framework/Op/PickUpKids.pm ./lib/Framework/Op/WalkTheDog.pm ./lib/Framework/Op/CookDinner.pm ./runner.pl
cat ops.conf
Op PayBills Op TakeOutTrash Op WalkTheDog
cat runner.pl
#!/usr/bin/env perl use strict; use warnings; use Config::General qw(ParseConfig); my %config = ParseConfig("ops.conf"); foreach my $op_class (@{ $config{Op} }) { my $class = "Framework::Op::$op_class"; eval "require $class" or die $@; my $op = $class->new; $op->execute; }
cat ./lib/Framework/Op/PayBills.pm
package Framework::Op::PayBills; use Moose; sub execute { my ($self) = @_; warn 'paying the bills'; } 1;
cat ./lib/Framework/Op/TakeOutTrash.pm
package Framework::Op::TakeOutTrash; use Moose; sub execute { my ($self) = @_; warn 'taking out the trash'; } 1;
The other modules are similar. Then:
+% perl -I lib runner.pl paying the bills at lib/Framework/Op/PayBills.pm line 7. taking out the trash at lib/Framework/Op/TakeOutTrash.pm line 7. walking the dog at lib/Framework/Op/WalkTheDog.pm line 7.

Replies are listed 'Best First'.
Re^2: Perl Framework Help
by anshumangoyal (Scribe) on Apr 30, 2012 at 15:13 UTC
    Love you Buddy. Excellent work. This is what I was looking for. It worked like a charm. A great thanks.