I found it myself this won't work because when using multiple files and pir compilation INIT / END block parent class will be executed anyway.
Is there way to postone to runtime class attribute without doing it manually? On Sun, Jun 15, 2014 at 10:34 PM, Kamil Kułaga <teodoz...@gmail.com> wrote: > Ok, > > I've read SYN-04 Phasers and I think I should use INIT {} or END {} > > Are there any situations INIT {} / END {} will not postpone execution? > Because in my case it is still executed during compilation > https://github.com/teodozjan/lacuna-cookbuk/tree/init_problems > > On Sun, Jun 15, 2014 at 12:45 PM, Moritz Lenz <mor...@faui2k3.org> wrote: >> Hi, >> >> class and role bodies are executed at compile time, so yes, that's >> expected. The same thing happens in BEGIN blocks. >> >> (Actually, the case with roles is more complicated; iirc their bodies >> are executed at role application time, but in your example, 'class B >> does Xx' runs at compile time, so the two are roughly equivalent). >> >> Cheers, >> Moritz >> >> On 06/15/2014 02:31 AM, Kamil Kułaga wrote: >>> Hi, >>> >>> I got amazed little bit when this code: >>> class A { >>> method wow{say "I'm alive"} >>> } >>> >>> role Xx{ >>> my $th = A.wow; >>> } >>> >>> >>> class B does Xx { >>> } >>> >>> Started to live during compilation (also tried with ufo): >>> >>> $ perl6 -o o.pir funnyrole.pl >>> I'm alive >>> >>> >>> Is this expected or subject to change? >>> > > > > -- > Pozdrawiam > > Kamil Kułaga -- Pozdrawiam Kamil Kułaga