मैं अपने %hash
को पूरी तरह से रीसेट करना चाहता हूं ताकि इसमें कुंजी या मान शामिल न हों। मैं लूप का उपयोग करने के बजाय एक लाइनर का उपयोग करना पसंद करता हूं।मैं लूप का उपयोग किये बिना पूरी तरह से हैश को रीसेट कैसे कर सकता हूं?
अब तक मैं कोशिश की है:
%hash = 0;
%hash = undef;
लेकिन इन दोनों सक्षम चेतावनी के साथ कठोर मोड में त्रुटियों फेंक, तो मैं पाश एक ही बात को प्राप्त करने के लिए एक सरल लिखा है:
for (keys %hash) {
delete $hash{$_};
}
यह काम करता है लेकिन मैं वास्तव में एक लाइनर के साथ ऐसा करना चाहता हूं। क्या हैश को रीसेट करने का कोई तरीका है जिसे मैं देख रहा हूं?
मैं चकित कोई पहले से ही अचानक सवाल है कि कर रहा हूँ के साथ काम करता लिए कहा। AFAICR मुझे कभी हैश को रीसेट करने की आवश्यकता नहीं थी क्योंकि पर्ल के साथ वास्तव में तंग स्कॉप्स हो सकते हैं। मैं बदले में चर के दायरे से बाहर निकलता हूं; यदि एक लूप में, शीर्ष के पास 'my' के साथ एक नया शब्दावली बनाया जाएगा। - मुझे लगता है कि यह एल्गोरिदमिक सुधार के लिए कमरे के साथ एक एक्सवाई समस्या है, शायद कुछ और संदर्भ दें? – daxim
हैश एक वैश्विक है जिसे मैं सभी कार्यक्रमों और शेष के बाद अपने कार्यक्रम की शुरुआत के करीब बना देता हूं। यह अलग-अलग subroutines के साथ संशोधित किया जाता है जब तक कि मैं एक सरणी में अंतिम संस्करण असाइन नहीं करता। इस प्रवाह को देखते हुए, जब तक कि मुझे कुछ याद नहीं आ रहा है, मुझे विश्वास है कि इस विशेष हैश को 'रीसेट' करना आसान है, इसे सरणी में असाइन करने के बाद इसे 'मेरा' कथन के साथ पुन: बनाना है। (यह संभव है कि मैं एक एक्सवाई समस्या को देख रहा हूं क्योंकि मुझे नहीं पता था कि हैश को रीसेट करने जैसा कुछ कैसे करना है) – Structure