Tôi đang viết một kịch bản perl, và trong phần tôi đang kiểm tra các tùy chọn mà người dùng đã cung cấp trên dòng lệnh, tôi muốn thoát với một lỗi giải thích những gì đã xảy ra với các tùy chọn. Trong trường hợp này, không cần một dấu vết ngăn xếp để đi cùng với thông báo lỗi này. Vì vậy, cách tốt nhất để chết với một thông báo lỗi là gì nhưng không có dấu vết ngăn xếp hoặc thông tin gỡ lỗi?Cách chính xác để chết với một lỗi nhưng không có một dấu vết ngăn xếp trong perl là gì?
Tôi đã thử những điều sau đây:
die "Invalid options";
trong đó sản xuất
Invalid options at myscript.pl line 49.
Sau đó, tôi đã cố gắng
use Carp;
...
croak "Invalid options";
trong đó sản xuất
Invalid options at myscript.pl line 47
main::prepare_output_directory() called at myscript.pl line 546
Vậy làm thế nào tôi có thể chết chỉ với Invalid options
và không có gì khác?
Câu hỏi bổ sung: tại sao croak
cho tôi biết rằng lỗi ở dòng 47, khi cuộc gọi thực tế đến croak
là trên dòng 49?
lại: câu hỏi tiền thưởng, hiển thị thêm ngữ cảnh cho croak của bạn? – ysth
Đừng bận tâm đến câu hỏi tiền thưởng. Tôi chỉ tự hỏi liệu có thể có lý do chung nào đó không. –
Đối với câu hỏi thưởng của bạn: 'croak' cố gắng báo cáo số dòng từ phối cảnh của người gọi. Đọc tài liệu cho mô-đun [Cá chép] (http://perldoc.perl.org/Carp.html). –