Tôi có một tập lệnh Perl (chương trình độc lập) có chứa một số đăng ký mà tôi muốn sử dụng lại trong các tập lệnh khác. Do những hạn chế của môi trường thực hiện, tôi không thể di chuyển các hàm đến một tệp tin phổ biến .pm
.Kịch bản Perl có thể sử dụng làm chương trình và làm mô-đun
Có thể phân biệt được liệu tập lệnh có được chạy dưới dạng chương trình độc lập hay là require
ed/do
do tập lệnh khác biên soạn?
Điều duy nhất tôi có thể tìm thấy là sử dụng caller
ở cấp cao nhất: chương trình độc lập không có bất kỳ người gọi nào trong khi khi require
ed caller
hiển thị những người đã tải mô-đun. Có giải pháp nào tốt hơn không?
Tôi đã đăng câu trả lời bên dưới, nhưng nếu bạn có thể giải thích về "những hạn chế của môi trường thực thi", có thể có những cách xung quanh những hạn chế đó sẽ cho phép bạn sử dụng các mô-đun thích hợp? Thx – DVK
@DVK: Tôi thực sự hài lòng với câu trả lời của bạn. (Cả cú pháp của người gọi() của tôi đều tốt như trong phản hồi của bạn.) Về giới hạn. Thực sự khá ngớ ngẩn: Tôi không thể thêm một mô-đun không thể thực thi khác vào thư mục vì nó được quét cho các tệp và tất cả các tên tệp có ý nghĩa đặc biệt. Thêm .pm có các đoạn mã khác mà tôi không được phép sửa đổi. – Dummy00001
Theo @FM, câu hỏi của tôi về bản chất là một sự lừa đảo của http://stackoverflow.com/questions/1131304/ – Dummy00001