2012-07-11 12 views
5

मैं एक कोड कैसे सेट कर सकता हूं जिसे पर्ल स्क्रिप्ट बंद होने से पहले निष्पादित करना चाहिए?पर्ल स्क्रिप्ट समाप्त होने से पहले हमेशा कुछ कोड निष्पादित करें

यहां how to run piece of code just before the exit of perl script मैंने ईएनडी सबराउटिन के बारे में पढ़ा है, लेकिन यह केवल तभी निष्पादित होता है जब स्क्रिप्ट सामान्य रूप से समाप्त हो जाती है। हालांकि, मैं कोड को निष्पादित करना चाहता हूं, उदाहरण के लिए, उपयोगकर्ता प्रोग्राम को^सी द्वारा बंद कर देता है।

उत्तर

7

जाल समाप्ति संकेतों और फिर से मार्ग उन्हें इतना कुछ सरल होगा:

$SIG{TERM} = $SIG{INT} = $SIG{QUIT} = $SIG{HUP} = sub { die; }; 
+1

धन्यवाद, यह काम किया। केवल मुझे लगता है कि^सी सिग्नल के बाद तीन बार निष्पादित सबराउटिन निष्पादित किया गया है ... –

+3

@ जेनिस इसलिए, अब आप जानते हैं कि^सी सिग्नल एक 3 अलग सिग्नल है;) शायद आप केवल एक सिग्नल का उपयोग करना चाहते हैं, जैसे 'QUIT' या 'TERM' या' INT'। उनमें से केवल एक को फिर से रूट करें। – gaussblurinc

+2

या आप 'उप' याद कर सकते हैं कि इसे पहले से ही बुलाया गया था। ['राज्य'] (http://perldoc.perl.org/functions/state.html) कीवर्ड इसके लिए अच्छा हो सकता है। – simbabque

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

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