2016-12-31 10 views
7

मैं में देख रही है और indir कार्यान्वयन में इस टिप्पणी को देखा गया था: मैंने सोचा था कि my के इस प्रयोग अजीब थापर्ल 6 कोर सेटिंग्स में काम क्यों नहीं करता है?

sub indir(Str() $path, $what, :$test = <r w>) { 
    my $newCWD := $*CWD.chdir($path,:$test); 
    $newCWD // $newCWD.throw; 

    { 
     my $*CWD = $newCWD; # temp doesn't work in core settings :-(
     $what(); 
    } 
} 

है, जो अगर my वास्तव में शाब्दिक है के बारे में doc issue #1082 तुच्छ लिए नेतृत्व किया। मैंने सोचा होगा कि temp गतिशील चर में उपयोगकर्ता स्तर के अस्थायी परिवर्तनों के लिए अधिक उपयुक्त होगा।

लेकिन अब, मुझे यह टिप्पणी दिखाई दे रही है, लेकिन मुझे पूरा यकीन नहीं है कि इसका क्या अर्थ है। temp इस गहरे को तोड़ दिया है? क्या यह यहां उपलब्ध नहीं है? या टिप्पणी सिर्फ गलत है? क्योंकि कुछ लोग हिम्मत में क्या करना है यह है कि

तो टिप्पणी सही है, हर रोज प्रोग्रामर स्तर तक लीक गतिशील चर के साथ काम कर के इस तरह से है (और वे कहते हैं कि करने के लिए इस्तेमाल किया गया?)

और, यह स्तर वास्तव में निम्न स्तर कितना है? ऐसा लगता है कि पर्ल 6 के सभी यहां उपलब्ध होना चाहिए।

उत्तर

5

शायद स्रोत कोड में टिप्पणी कम भ्रामक अगर यह था होगा:

# temp $*CWD doesn't work in core settings (which we're in) 
# my $*CWD = ... is a decent workaround in this case :) 

यह पर्ल 6 के सभी तरह लगता है यहाँ उपलब्ध होना चाहिए।

पूर्ण पर्ल 6 पर्ल 6 CORE setting के संकलन के पूरा होने के बाद जब तक इंतज़ार करना होगा। यह the Rakudo Perl 6 compiler's "core" src tree से मेल खाता है। इसमें the code "# temp कोर सेटिंग्स में काम नहीं करता है :-(" टिप्पणी।

2

@ राइफ के बिंदु पर जोर देने के लिए: सामान्य रूप से, किसी भी पर काम करने के लिए राकुडो में लागू किसी विशेष पर्ल 6 सुविधा की अपेक्षा करना अनुचित है , कोर में भी बिंदु क्योंकि कि कैसे हम सुविधाएँ उपलब्ध हैं।

कोर पर काम कर रहे डेवलपर्स इस बारे में पता होना है, और यह ध्यान में रखना, उदाहरण के लिए, आदेश देने कैसे कोर बनाया गया है में करने के लिए है, और कौन सी विशेषताएं उपलब्ध हैं (और आगे, कौन सी विशेषताएं निचले स्तर पर अधिक प्रदर्शनशील हैं, इसलिए कोर में दिखाई देने वाला पर्ल 6 कई अलग-अलग कारणों से बेवकूफ नहीं हो सकता है।)

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