Reference the 2nd to last line in my script. For some reason Perl is not able to access the variable $perlPort how can I fix this? Note: $perlPort is a bash variable location before my perl script
perl -e '
{
    package MyWebServer;
    use HTTP::Server::Simple::CGI;
    use base qw(HTTP::Server::Simple::CGI);
    my %dispatch = (
        "/" => \&resp_hello,
    );
    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_hello {
        my $cgi  = shift;   # CGI.pm object
        return if !ref $cgi;
        my $who = $cgi->param("name");   
        print $cgi->header,
            $cgi->start_html("Hello"),
            $cgi->h1("Hello Perl"),
            $cgi->end_html;
    }
}
my $pid = MyWebServer->new($perlPort)->background();
print "Use 'kill $pid' to stop server.\n";'
                export perlPort
perl -e '
...
my $pid = MyWebServer->new($ENV{perlPort})->background();
'
                        You can use -s switch to pass variables.  See http://perldoc.perl.org/perlrun.html
perl -se '
...
my $pid = MyWebBrowser->new($perlPort)->background();
...' -- -perlPort="$perlPort" 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With