Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: RPC-like behavior in a UDP server

by bl0rf (Pilgrim)
on Jul 13, 2004 at 17:04 UTC ( #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 $torun.pm } 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!


Comment on Re: RPC-like behavior in a UDP server
Download Code
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!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://374062]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (5)
As of 2014-12-18 00:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (41 votes), past polls