2012-08-27 22 views
8

आज मैं Rakudo स्टार 2012.07 स्थापित किया है और एक सरल पर्ल 6 स्क्रिप्ट लिखने के लिए tryed:अजीब व्यवहार 6

#!/usr/bin/env perl6 

use v6; 
use LWP::Simple; 

my $html = LWP::Simple.get('http://perl6.org'); 
say $html; 

यह निम्न त्रुटि के कारण काम नहीं करता:

No such method 'get_string' for invocant of type 'String' 
    in method decode at src/gen/CORE.setting:6766 
    in method parse_response at lib/LWP/Simple.pm:244 
    in method make_request at lib/LWP/Simple.pm:199 
    in method request_shell at lib/LWP/Simple.pm:63 
    in method get at lib/LWP/Simple.pm:28 
LWP की

कोड :: लाइन 244 पर सरल है:

my @header_lines = $resp.subbuf(
    0, $header_end_pos 
).decode('ascii').split(/\r\n/); 

अजीब बात यह है कि निम्नलिखित कोड ठीक है:

> Buf.new(1,2,3,4,5).decode('ascii') 

जबकि यह एक विफल रहता है:

> Buf.new(1,2,3,4,5).subbuf(0,3).decode('ascii') 
Method 'get_string' not found for invocant of class 'String' 

तुम मुझे समझा सकते हैं कृपया, यह क्यों होता है? जहां तक ​​मैं देख सकता हूँ, दोनों ही मामलों में Buf.decode विधि कहा जाता है:

> Buf.new(1,2,3,4,5).subbuf(0,3).isa('Buf') 
True 
> Buf.new(1,2,3,4,5).isa('Buf') 
True 

शायद यह Rakudo पर्ल में एक बग है? या शायद सबबफ एक बहिष्कृत/अनियंत्रित विधि है? यह doc.perl6.org पर मौजूद नहीं है। इस मामले में किस विधि का उपयोग किया जाना चाहिए?

+2

आप पूछ सकते हैं चाहता हूँ आईआरसी पर कि, चैनल # perl6 देखते हैं। देखें: http://irclog.perlgeek.de/perl6/today –

उत्तर

6

यह Rakudo में एक बग, जो पहले से ही नवीनतम विकास संस्करण

$ perl6 -e 'say Buf.new(1,2,3,4,5).subbuf(0,3).decode("ascii")'|hexdump -C 
00000000 01 02 03 0a          |....| 

में, Rakudo स्टार रिहाई तय किया गया है (मैं यकीन है कि ठीक भी Rakudo 2012.08 रिलीज है कर रहा हूँ आधारित पर था संकलक इस हफ्ते बाहर होंगे)।

कारण यह अभी तक दस्तावेज नहीं है क्योंकि मैंने उन तरीकों पर ध्यान केंद्रित किया है जो कल्पना में हैं, क्योंकि उनके पास जीवित रहने का उच्च अवसर है। हालांकि मैं जल्द ही दस्तावेज जोड़ने के लिए चारों ओर घूमने की उम्मीद करूंगा।

अद्यतन: यह करने के लिए चारों ओर हो गया, http://doc.perl6.org/type/Buf#subbuf

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