आज मैं 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 पर मौजूद नहीं है। इस मामले में किस विधि का उपयोग किया जाना चाहिए?
आप पूछ सकते हैं चाहता हूँ आईआरसी पर कि, चैनल # perl6 देखते हैं। देखें: http://irclog.perlgeek.de/perl6/today –