Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^3: Absolute simplest way to keep a database variable persistent?

by toma (Vicar)
on Oct 05, 2008 at 19:17 UTC ( #715448=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Absolute simplest way to keep a database variable persistent?
in thread Absolute simplest way to keep a database variable persistent?

One way to wrap a perl program is to use a web server. Create a server that takes an input of two strings and return the relatedness. The server can keep WordNet loaded between requests.

The server could be something like Apache and mod_perl, or it could be something like POE::Component::Server::HTTP.

I use the Cygwin environment and the POE modules to interface to other programs this way. However, I wasn't able to get POE working well until a learned a fair amount of Perl. Maybe you will get lucky and find a POE example that is very close to what you need.

This might not be the 'absolute simplest' to develop, but after you get it working your code will be quite simple!

It should work perfectly the first time! - toma


Comment on Re^3: Absolute simplest way to keep a database variable persistent?
Re^4: Absolute simplest way to keep a database variable persistent?
by natestraight (Novice) on Oct 06, 2008 at 13:57 UTC
    Yeah, I thought about using a server to handle the issue. The problem with this method is that, ideally, my finished application (excel sheet + custom VBA functions + working Perl scripts) is going to be transferred to other users, who are not even able to be considered n00bs. I'm trying to keep the techie overhead and the requisite configuration to a minimum so that I can just bundle up the necessary Perl directories in a .zip and send them along with my spreadsheet.
      Instead of using a webserver, have your Perl script fork off its own server (if one isn't running at the time). It can communicate on a socket. We have a CGI program that keeps an large XSLT in standby. Using IO::Socket:
      my $sock = new IO::Socket::INET ( LocalHost => $server, LocalPort => 9200, Proto => 'tcp', Listen => 2, ReuseAddr => 1, ); die "socket creation error: $!" unless $sock; while( my $client = $sock->accept() ) { binmode $client, ":utf8"; $client->autoflush(1); # Read data while( $client->recv( $in_buffer, $buffer_size ) ) { # Store data } # Process data # Return data $client->send( $output ); }
      Some things to consider to make it dummy proof is allow it to adjust what port is runs on at runtime, and to have the server exit after a while to avoid zombie processes.
        Sounds possible. Thanks for the sample code, too.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (9)
As of 2014-12-17 23:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

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





    Results (40 votes), past polls