Joel Berger posted this little program to start a web server to serve local files, và nó hoạt động tuyệt vời:Làm cách nào tôi có thể nhận được cổng mà Mojolicious :: Lite chọn?
use Mojolicious::Lite;
@ARGV = qw(daemon);
use Cwd;
app->static->paths->[0] = getcwd;
any '/' => sub {
shift->render_static('index.html');
};
app->start;
tôi prepopulated dòng lệnh trong @ARGV
vì tôi quên để làm điều đó. Khi nó bắt đầu, nó mang lại một thông báo cho biết đó cổng nó đã chọn, sử dụng 3000 nếu nó có thể:
$ perl ~/bin/mojo_cwd
[Fri Mar 29 19:14:09 2013] [info] Listening at "http://*:3000".
Server available at http://127.0.0.1:3000.
Tôi muốn để có được cổng mà ủng hộ về mặt ngữ pháp do đó, một bộ kiểm tra có thể biết được nơi để tìm nó và tôi không muốn làm điều đó bằng cách loại bỏ đầu ra. Không có thử nghiệm nào của tôi cho điều này hữu ích và tôi nghĩ rằng tôi luôn đi sai hướng. Dường như nó không chọn cổng cho đến khi nó bắt đầu, và một khi tôi gọi start
, đó là kết thúc của nó.
Tôi cũng không muốn tự xác định cổng.
Đây không phải là vấn đề cấp thiết. Tôi có một giải pháp hiện tại cho điều này với một khuôn khổ HTTP đơn giản, nhưng tôi đã xem xét thay thế hầu hết những thứ đó với Mojo nếu tôi có thể. Kể từ khi những thứ cũ vẫn hoạt động, đây thực sự là một cái gì đó tốt đẹp để có chứ không phải là một cái gì đó theo cách của tôi.
Sẽ hữu ích nếu bạn đăng mã mà từ đó bạn đang cố gắng lấy số cổng - để chúng tôi có thể thấy những gì bạn đang mong đợi tiết lộ và làm cách nào. –
Tất cả mã đều ở ngay đó. Tôi muốn chạy kịch bản đó và biết số cổng. Câu trả lời của sri là nó luôn luôn là 3000 hoặc không có gì. –
có thể dễ dàng kiểm tra: cố gắng khởi động 2 trường hợp ứng dụng song song cho lỗi 'Không thể tạo ổ cắm nghe: Địa chỉ đã được sử dụng tại ... '- điều này cho thấy mặc định là cổng duy nhất đã thử –