मैं एक पर्ल स्क्रिप्ट लिख रहा हूं, और उस हिस्से में जहां मैं कमांड लाइन पर उपयोगकर्ता द्वारा प्रदान किए गए विकल्पों की जांच कर रहा हूं, मैं विकल्पों के साथ क्या गलत था, यह समझने में त्रुटि के साथ बाहर निकलना चाहता हूं। इस मामले में, इस त्रुटि संदेश के साथ जाने के लिए स्टैक ट्रेस की कोई आवश्यकता नहीं है। तो एक त्रुटि संदेश के साथ मरने का सबसे अच्छा तरीका क्या है लेकिन कोई स्टैक ट्रेस या डीबग जानकारी नहीं है?त्रुटि के साथ मरने का सही तरीका क्या है लेकिन पर्ल में स्टैक ट्रेस के बिना?
मैं निम्नलिखित की कोशिश की है:
die "Invalid options";
जो
Invalid options at myscript.pl line 49.
तब पैदा करता है, मैंने कोशिश की
use Carp;
...
croak "Invalid options";
जो
Invalid options at myscript.pl line 47
main::prepare_output_directory() called at myscript.pl line 546
012 का उत्पादन
तो मैं Invalid options
के साथ कैसे मर सकता हूं और कुछ और नहीं?
बोनस प्रश्न: croak
क्यों मुझे बताता है कि त्रुटि 47 लाइन पर है, जब croak
पर वास्तविक कॉल लाइन 49 पर है?
die "Invalid options\n";
यही से त्रुटि के स्थान पाएगा अपने संदेश के साथ जोड़ दिया जा रहा है:
पुन: बोनस प्रश्न, अपने क्रोक के लिए अधिक संदर्भ दिखाएं? – ysth
बोनस प्रश्न पर कभी भी ध्यान न दें। मैं बस सोच रहा था कि क्या कुछ सामान्य कारण हो सकता है। –
आपके बोनस प्रश्न के लिए: 'croak' कॉलर के परिप्रेक्ष्य से लाइन नंबर की रिपोर्ट करने का प्रयास करता है। [कार्प] (http://perldoc.perl.org/Carp.html) मॉड्यूल के लिए दस्तावेज़ पढ़ें। –