ओएसएक्स "मैवरिक्स" पर, यह:
package FOO;
use Moose;
use MooseX::ClassAttribute;
class_has "BAR" => ( is => "rw" );
... प्रति "perl -c" साफ़ साफ करता है:
FOO.pm वाक्यविन्यास ठीक है
... लेकिन अगर मैं इसे "perl FOO.pm" के साथ चलाता हूं तो यह त्रुटि देता है:
हैश असाइनमेंट में तत्वों की विषम संख्या/ सिस्टम / पुस्तकालय /Perl/Extras/5.16/MooseX/ClassAttribute.pm लाइन 37। / Library/Perl/5.16/darwin-thread-multi-2level/Moose/Meta/Attribute.pm लाइन 71 पर उपयोग में "सख्त रेफरी" के दौरान स्ट्रिंग ("फ़ाइल") का उपयोग नहीं कर सकते हैं।
मैंने कोशिश की है कि मैं क्या कर सकता हूंयहां जा रहा है, लेकिन मैं स्टंप हो गया हूं। क्या मुझे कुछ और उपयोग करना है या पहले घोषित करना है? (यह सबसे छोटा टेस्ट केस है जिसके साथ मैं आ सकता हूं, लेकिन जब भी मैं मॉड्यूल में class_has () का उपयोग करता हूं तो त्रुटि होती है ।)
उत्तर:
उत्तर № 1 के लिए 1जब आप मूस का उपयोग करने वाले मॉड्यूल से अजीब त्रुटियां प्राप्त करते हैं, तो करने वाली पहली चीज़ को चलाया जाता है moose-outdated
कमांड लाइन पर लिपि। आपके पास शायद पुराना मूसएक्स मॉड्यूल है जो "मूस के स्थापित संस्करण के साथ संगत नहीं है।
आपको दौड़ना चाहिए moose-outdated
हर बार जब आप मूस को अपग्रेड करते हैं, लेकिन यह भूलना आसान होता है, खासकर जब मूस को अपग्रेड किया गया था क्योंकि यह किसी अन्य मॉड्यूल की निर्भरताओं में से एक है जिसे आप इंस्टॉल कर रहे हैं।