2012-06-28 12 views
5

मुझे एक छोटा पर्ल प्रोग्राम मिला है जिसे मैं कमांड लाइन पर चलाने के लिए चाहता हूं। मुझे require एक और पर्ल स्क्रिप्ट (एक मॉड्यूल नहीं) की आवश्यकता है जिसे किसी और ने लिखा है। बदले में, require कुछ अन्य स्क्रिप्ट्स। (मैं इस काम के तरीके के बारे में कुछ भी नहीं कर सकता)।पर्ल में, मैं एक आवश्यक स्क्रिप्ट में लोड किया गया CGI :: कार्प को कैसे अक्षम कर सकता हूं?

अब, यह वास्तव में कष्टप्रद इन लिपियों में से एक use CGI; है और उस में use CGI::Carp qw(fatalsToBrowser) है। मैं नहीं चाहता कि। मेरे कंसोल पर 500 Internal Server Error page की 15 लाइनें होने पर हर बार कुछ ब्रेक वास्तव में मेरे नसों पर हो रहा है। मैं

require 'otherscript.pl'; 
no CGI; 
no CGI::Carp; 

और

no CGI; 
no CGI::Carp; 
require 'otherscript.pl'; 

की कोशिश की है यह अनलोड करने के लिए, use doc तरह का वर्णन करता है, लेकिन यह काम नहीं करता।

क्या मैं किसी भी तरह से प्रतीक तालिका में हेरफेर कर सकता हूं या इससे छुटकारा पाने के लिए कुछ अन्य जादू कर सकता हूं?

उत्तर

3

CGI :: कार्प पैकेज में unimport दिनचर्या नहीं है, इसलिए no का कोई प्रभाव नहीं है। मैन्युअल रूप से import दिनचर्या के प्रासंगिक भाग को पूर्ववत करें।

शाब्दिक गुंजाइश (caveat देखें):

local $main::SIG{__DIE__} = \&CGI::Carp::realdie; 

वैश्विक गुंजाइश:

CGI::Carp::set_die_handler(\&CGI::Carp::realdie); 
+1

एक बेहतर तरीका 'CGI :: कार्प :: set_die_handler (\ & CGI :: कार्प :: realdie)' है। लेकिन यह वैश्विक है। –

3

0 करने के लिए आप मुद्रण मरने संदेशों के HTML संस्करण को दबा सकती हैं $CGI::Carp::TO_BROWSER चर की स्थापना करके।

+0

मुझे यह जवाब भी पसंद है, लेकिन डेक्सिम तेज था, इसलिए मैंने उसे चुना। वैसे भी धन्यवाद। :) – simbabque

2

fatalsToBrowser का उपयोग करने वाला कोड कहां से आता है? जबकि fatalsToBrowser वास्तव में उपयोगी विकास उपकरण है, इसे केवल विकास में उपयोग किया जाना चाहिए। एक उत्पादन वातावरण में यह तर्क दिया जा सकता है कि fatalsToBrowser एक सुरक्षा जोखिम है क्योंकि यह संभावित रूप से आपके सर्वर को क्रैक करने की कोशिश करने वाले किसी व्यक्ति को बहुत अधिक जानकारी देता है।

तो, हर तरह से उन चालों का उपयोग करें जिन्हें अन्य लोगों ने इसे बंद करने के लिए उल्लेख किया है। लेकिन आप यह सुनिश्चित करने के लिए जो कुछ भी कर सकते हैं उसे भी करना चाहिए कि अपमानजनक कोड बदल दिया गया है ताकि यह उत्पादन में fatalsToBrowser का उपयोग न करे।

+0

यह बहुत अच्छी सलाह है। धन्यवाद। – simbabque

संबंधित मुद्दे

 संबंधित मुद्दे