Perl question

shikhan

Senior member
Mar 15, 2001
834
0
71
I'm trying to develop a framework for an application, and i've gotten stuck at a certain point. First, let me layout the basic idea behind the app.

The idea behind the app is to provide a framework which groups can extend on their own. The framework is supposed to provide a few basic functions and then call the functions the group is interested in. Each group will have a list of functions they want to run. They may want to use functions written by other groups.

I've currently prototyped this using multiple files, one for the primary program, and one for each group, and i'm including the group files. What I'd like to do is add the ability for users to prototype functions by writing the function in a side file and let them test it before adding it to the group files.

I can't seem to find a way to extend this cleanly to allow user to test code before they turn it into the global files. Am I approaching this problem the wrong way or is there a way to do everything I want?

Example code:
#file: test
use strict;
use warnings;

use group1_func;
my %run_list;

my $group = $opt_group; #this is just for simplicity for this example

if ($group eq "group1") { %run_list = GROUP1_run_list; }
else { die "Bad Group\n";}

foreach my $func (keys %run_list) {
$run_list{$func}->();
}

#file: group1_func.pm
package group1_func;

use strict;
use Exporter;
use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
@ISA = qw(Exporter);
@EXPORT = qw(G1_func1, G1_func2);

our %run_list = ( "G1_func1" => \&G1_func1, "G1_func2" => \&G1_func2);

sub G1_func1 {
print("G1_funct1 called\n");
}

sub G1_func2 {
print("G1_func2 called\n");
}

1;
 

Onund

Senior member
Jul 19, 2007
287
0
0
revision control software an option? This is exactly what it's good for. The users would just need to check out the group file, edit and test as needed then check to the source when done.

If revision control software is not possible, could you spec a file in a known location to be a test file? In your framework app, it could check if the file exists and if it does, load the functions in that file. Then each user could have a custom test file in their home dir and only release it to the global files when ready.

So, something like

if(exists(~/app/groupFuncs/testfile.pm)) {
use testfile;
}
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |