类似Python SimpleHTTPServer

#!/usr/bin/perl
# https://metacpan.org/pod/HTTP::Server::Simple
# https://metacpan.org/pod/distribution/CGI/lib/CGI.pod
package WebServer;

use strict;
use warnings FATAL => 'all';
use HTTP::Server::Simple::CGI;
use base qw(HTTP::Server::Simple::CGI);
use JSON;

sub handle_request {
  my $self = shift;
  my $cgi  = shift;
  my $handler = \&resp_info;

  print "HTTP/1.0 200 OK\r\n";
  print $cgi->header(
    -type    => 'application/json',
    -status  => '200',
  );
  $handler->($cgi);
}

sub resp_info {
  my $cgi  = shift;   # CGI.pm object
  return if !ref $cgi;

  # my $who = $cgi->param('name');
  my %rec_hash = (
    'path' => $cgi->path_info(),
    'method' => $cgi->request_method()
  );
  my $json = encode_json \%rec_hash;

  print $cgi->param(
    -name  => 'data',
    -value => $json,
  );
};

# start the server on port 8080
my $pid = WebServer->new(8080)->run();
# my $pid = WebServer->new(8080)->background();
# print "Use 'kill $pid' to stop server.\n";

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄