#!/usr/bin/perl -w use strict; use lib "./plugins"; # we place plugins here my @plugins = ( 'nullPlugin', 'checkPlugin', 'printPlugin' ); my @plugFuncs; foreach my $plugin (@plugins){ eval "use $plugin; $plugin\:\:init(); push \@plugFuncs, \\\&$plugin\:\:worker; "; } # Point of use... my $res = 0; foreach my $plugFunc (@plugFuncs){ last if $res == 1; $res = &{ $plugFunc }($data); } #### package nullPlugin; # A plugin that skips IDs found in a skiplist-file use strict; our %skiplist; sub init { open INPUT, "nullPlugin-list" or return 1; while(){ chomp; $nullPlugin::skiplist{$_} = undef if /^\d+$/; } close INPUT; return 1; } sub worker { my $id = shift; return 1 if exists($nullPlugin::skiplist{$id}); } 1;