in reply to Re: Web service without a server
in thread Web service without a server

Thomas, appreciate your time ! but you should know how to respond, mistakes do happen !

Replies are listed 'Best First'.
Re^3: Web service without a server
by thomas895 (Deacon) on Mar 18, 2014 at 04:10 UTC

    I just wish I did! Now that you've updated your question to be more specific, I can once again recommend Dancer, Catalyst, Mojolicious(::Lite), or even HTTP::Server::Simple.

    Here is an example of your desire(borrowed code from the latter):

    #!/usr/bin/perl { package MyWebServer; use HTTP::Server::Simple::CGI; use base qw(HTTP::Server::Simple::CGI); my %dispatch = ( '/bla' => \&resp_bla, ); sub handle_request { my $self = shift; my $cgi = shift; my $path = $cgi->path_info(); my $handler = $dispatch{$path}; if (ref($handler) eq "CODE") { print "HTTP/1.0 200 OK\r\n"; $handler->($cgi); } else { print "HTTP/1.0 404 Not found\r\n"; print $cgi->header, $cgi->start_html('Not found'), $cgi->h1('Not found'), $cgi->end_html; } } sub resp_bla { my $cgi = shift; # CGI.pm object return if !ref $cgi; print $cgi->header("text/plain"), (rand(10) < 5) # pick a random number and see if it is less + than 5... ? 1 : 0; #...and print 1 if it is, or 0 if it isn't. } } # start the server on port 8080 # access me at http://localhost:8080/bla my $pid = MyWebServer->new(8080)->background(); print "Use 'kill $pid' to stop server.\n";

    Of course, you will want to do a more interesting check than a random number -- say, whether a file exists, a row is present in a table, or if it is a certain time of day.

    ~Thomas~ 
    "Excuse me for butting in, but I'm interrupt-driven..."