2013-06-03 6 views
8

मैं पर्ल विंडोज में एक त्वरित ऑटो-अपडेटर बनाने की कोशिश कर रहा हूं। मैंने देखा है कि जब मैं पैकेज के अद्यतन को स्थापित करने के लिए cpanp पर कॉल करता हूं तो यह स्क्रिप्ट का एक नया संस्करण स्थापित करने में विफल रहता है क्योंकि स्क्रिप्ट वर्तमान में चल रही है। मैं वर्तमान में CORE::system() के साथ cpanp पर कॉल कर रहा हूं। अगर मैंने cpanp को exec() के साथ बुलाया है तो क्या यह प्रतिस्थापन के लिए निष्पादन योग्य रिलीज़ होगा? या, क्या विंडोज इसे पूरी तरह से बंद कर देता है भले ही निष्पादन पूरी तरह से cpanp पर चालू हो गया हो?विंडोज स्क्रिप्ट ऑटो-अपडेट निष्पादन के साथ निष्पादन योग्य को बदल रहा है?

वर्तमान में, मेरी प्रक्रिया प्रवाह कुछ इस तरह, सर्वर से

  1. डाउनलोड META.yml
  2. META.yml के संस्करण
  3. वर्तमान $VERSION
    • वर्तमान हैं के खिलाफ की तुलना करें बाहर पार्स लग रहा है संस्करण कम है, META.yml
      1. Ge में डेटा का उपयोग कर एक संस्करण स्ट्रिंग उत्पन्न करें META.yml के लिए मेजबान/पथ और संस्करण/डेटा जानकारी स्पोन cpanp अद्यतन की
      2. सूचित उपयोगकर्ता
      3. यूआरएल के साथ अद्यतन चलाने के लिए उपयोग करते हुए पैकेज के लिए एक URL nerate।
    • वर्तमान संस्करण में एक ही
      1. कुछ भी नहीं

system() निष्पादन के प्रतिस्थापन के संबंध में Win32 पर अलग ढंग से व्यवहार करते हैं exec() से होगा है? लिनक्स पर यह डिजाइन के रूप में काम करता है।

+0

क्या आप ** पर्ल ** निष्पादन योग्य के बारे में बात कर रहे हैं? –

उत्तर

1

मैंने अभी इसका परीक्षण किया। exec काम करता है क्योंकि यह लिनक्स और Win32 दोनों पर होना चाहिए। See this page for portability info on Perl

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