On Tue, 10 Jan 2012 02:16:07 -0800, masak wrote:
> <tadzik> about wrap again: https://gist.github.com/1585730
> 
> Included here for completeness:
> 
> ┌─[tadzik@yavin4]─[~/src/perl/bailador] (master)*
> └─[%]─> cat lib/Bailador.pm
> module Bailador;
> 
> our sub our_template {
>     return "(our template)"
> }
> 
> sub exp_template is export {
>     return "(exp template)"
> }
> 
> sub hook is export {
>     &our_template.wrap: { "wrapped {callsame()}" };
>     &exp_template.wrap: { "wrapped {callsame()}" };
> }
> ┌─[tadzik@yavin4]─[~/src/perl/bailador] (master)*
> └─[%]─> cat examples/app.pl
> use Bailador;
> 
> sub foo {
>     say Bailador::our_template();
>     say exp_template();
> }
> 
> hook();
> 
> foo();
> ┌─[tadzik@yavin4]─[~/src/perl/bailador] (master)*
> └─[%]─> perl6 examples/app.pl
> wrapped (our template)
> (exp template)

This bug is still present in current Rakudo:

    This is Rakudo version 2017.08-104-g76f1d8970
    built on MoarVM version 2017.08.1-148-g1059eed1
    implementing Perl 6.c.

(Test script now needs s/module/unit module/ to run, but then produces the same 
result.)

Calling `&exp_template.WHICH` also confirms that the one in the module and the 
one in the mainline scope are different objects.

Reply via email to