Bu, bir öncekimden Why is Perl 6's unwrap method a method of Routine?, ancak çoğunlukla ilgisiz bir soru.Neden Routine :: WrapHandle'da meta yöntemlerini arayamıyorum?
wrap
yöntemi "WrapHandle denilen özel sınıfının bir örneğini döndürmek için belgelenmiş olduğunu özeldir bir sınıf sızdırmakla tuhaf olmasının yanı sıra, geri geliyor şeyin adı aslında değil sınıf aslında Routine::WrapHandle
olduğunu..: .
$ perl6
> sub f() { say 'f was called' }
sub f() { #`(Sub|140397740886648) ... }
> my $wrap-handle = &f.wrap({ say 'before'; callsame; say 'after' });
Routine::WrapHandle.new
Ama burada bir soru ben Routine::WrapHandle
üzerinde .^methods
aramak istedim Yani çalışmaz.
> Routine::WrapHandle.^methods
Could not find symbol '&WrapHandle'
in block <unit> at <unknown file> line 1
Bu aynı tanımlanmamış bir c üzerinde çalışmak gibi lass isim:
> $wrap-handle.^methods
(restore)
> $wrap-handle.^name
Routine::WrapHandle
orada neler oluyor:
> Foo::Baz.^methods
Could not find symbol '&Baz'
in block <unit> at <unknown file> line 1
olsa örneğinde meta yöntemleri çağırabilir?
Bu bir [sözcük sınıfı] (https://github.com/rakudo/rakudo/search?&q=WrapHandle&type=) –