将 bash 变量传递到内联 perl 脚本中

Paz*_*uzu 3 bash perl webserver centos7

在我的脚本中引用第二行到最后一行。出于某种原因,Perl 无法访问该变量$perlPort,我该如何解决这个问题?注意:$perlPort是我的 perl 脚本之前的 bash 变量位置

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";'
Run Code Online (Sandbox Code Playgroud)

Ole*_*nge 5

export perlPort
perl -e '
...
my $pid = MyWebServer->new($ENV{perlPort})->background();
'
Run Code Online (Sandbox Code Playgroud)