I think this is a typo:
"web service without need of a web service"
And what they mean is that they have to make a script send a response to a browser, without having a traditional webserver (apache and so on) installed.
| [reply] |
thank you for correcting the typo, yes I'm looking for some answers related to 'Web Service' without a need of installing ' a Traditional Web Server'
| [reply] |
Thomas, appreciate your time ! but you should know how to respond, mistakes do happen ! | [reply] |
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..."
| [reply] [d/l] |