Re: ROUTINE question

[email protected] (ToddAndMargo via perl6-users) Mon, 13 Oct 2025 02:34:03 -0700
Newsgroups perl.perl6.users
Message-ID <[email protected]>
On 10/13/25 1:04 AM, Elizabeth Mattijsen wrote:
>> On 13 Oct 2025, at 09:13, ToddAndMargo via perl6-users <[email protected]> wrote:
>> what am I doing wrong this time?
>>
>> $ raku -e 'say &?ROUTINE.gist;'
>> ===SORRY!=== Error while compiling -e
>> Undeclared name:
>>     ?ROUTINE used at line 1. Did you mean 'Routine'?
>>
>> Your in confusion,
> 
> &?ROUTINE is only set *inside* a subroutine or a method.  So it can't find &?ROUTINE, and then falls back to the normal error that you get when referencing an unknown subroutine (taking the `&` off of the full name of the subroutine), e.g:
> 
> $ raku -e 'foo'
> ===SORRY!=== Error while compiling -e
> Undeclared routine:
>      foo used at line 1
> 
> The error message is indeed a bit confusing in the &?ROUTINE context.

That explains it.  I copies it out of


sub MyName( $LongSubName ) {
    # $LongSubName is &?ROUTINE.gist from the calling routine
    &?ROUTINE.gist ~~ m/' '(.*?)' '\(/;
    my $SubName = $0;
    return $SubName;
}


Thank you!