Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re: RPC-like behavior in a UDP server

by bl0rf (Pilgrim)
on Jul 13, 2004 at 17:04 UTC ( [id://374062] : note . print w/replies, xml ) Need Help??

in reply to RPC-like behavior in a UDP server

Hi rje!
I have experience with reinventing the wheel on this type of thing ( wrote a Java parallel processing framework from scratch )</brag> and I think that its not going to be a lot of work ( you have a good idea for it ) and that you'll have fun doing it.

You might do something like this:

opendir( DIR, $command-directory ) || die "cant open dir: $!"; @commands = readdir( DIR ); @commands = grep( m!\.pm$!, @commands ); # only .pm files $torun = "thetime"; $arg1 = '.....'; $arg2 = 'etc.'; foreach ( @commands ) { if( $_ eq $torun ){ $continue = 'true' } else{ $continue = undef } } if( defined( $continue ) ) { require ("$torun" . "\.pm"); ${$torun}::{$torun}->( $arg1, $arg2 ); # run subroutine $torun i +n file $ } if( !defined( $continue ) ) { print "no such method call: $torun\n"; }
You could have the procedure subroutine and file share the same name. * only key parts are tested. Good luck!

Replies are listed 'Best First'.
Re^2: RPC-like behavior in a UDP server
by rje (Deacon) on Jul 13, 2004 at 21:47 UTC
    This is a nice solution, a good balance between dynamicness and simplicity. Sure I'd have to restart the server to pick up new commands, but this isn't a mission-critical project either, and downtimes are to be expected. I like it!

    Consider your code snippet borrowed!