2012-08-27 13 views
8

Bugün Rakudo Yıldız 2.012,07 yüklü ve basit bir Perl 6 senaryoyu yazması için uğraş:Garip davranışları 6

Bunun nedeni aşağıdaki hata nedeniyle çalışmıyor
#!/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 
hattı 244 üzerinde Basit LWP

kodu :: olduğunu :

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

garip bir şey şu kod Tamam olmasıdır:

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

bu başarısız olurken:

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

bana lütfen açıklayabilir misiniz, bu olur neden? Bildiğim kadarıyla gördüğünüz gibi, her iki durumda da Buf.decode yöntemi denir:

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

Belki de Rakudo Perl bir hata var? Veya belki subbuf onaylanmamış/belgesiz bir yöntem midir? Doc.perl6.org adresinde mevcut değil. Bu durumda hangi yöntem kullanılmalıdır?

+2

bkz gördü. Bakın: http://irclog.perlgeek.de/perl6/today –

cevap

6

Zaten ben düzeltme de Rakudo 2.012,08 sürümüdür eminim (en yeni gelişme sürümü

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

giderilen, Rakudo Yıldız bırakma dayalı olmuştur Rakudo bir hata oldu derleyici bu hafta dışarıda olacak). Henüz belgelenmemesinin nedeni, hayatta kalma şansının daha yüksek olduğu için spesifikasyonda da bulunan yöntemlere odaklandığımdır. Belgeleri yakında eklemeyi umuyoruz.

Güncelleme: etrafında kendisine, istiyorsun, IRC kanalı # perl6 o sorabiliriz http://doc.perl6.org/type/Buf#subbuf