Todd,

The 'unit' in line 3 means something like 'this whole file is the Module' so there are no Begins/Ends/brackets.

The opening bracket for class Informing is on (or about) line 10 and the closing in at about line 630, with a comment 'end of Informing class'

Richard

On 08/06/2020 21:47, ToddAndMargo via perl6-users wrote:
On 2020-06-08 05:35, Fernando Santagata wrote:
On Mon, Jun 8, 2020 at 2:11 PM ToddAndMargo via perl6-users <perl6-us...@perl.org <mailto:perl6-us...@perl.org>> wrote:

    On 2020-06-08 04:32, Fernando Santagata wrote:
     > On Mon, Jun 8, 2020 at 1:20 PM ToddAndMargo via perl6-users
     > <perl6-us...@perl.org <mailto:perl6-us...@perl.org>
    <mailto:perl6-us...@perl.org <mailto:perl6-us...@perl.org>>> wrote:
     >
     >     On 2020-06-08 03:38, Fernando Santagata wrote:
     >       > …and line 3:
     >       >
     >       > unit module Informative;
     >
     >     3: unit module Informative;
     >
     >     Does not look like a class to me.  What am I missing?
     >
     > It's a namespace declaration, see:
     >
     >
https://docs.raku.org/language/syntax#index-entry-declarator_unit-declarator_module-declarator_package-Package,_Module,_Class,_Role,_and_Grammar_declaration
     >
     > That's the reason why the class name is Informative::Informing
    and not
     > just Informing.

    Hi Fernando,

    I see:

         Several packages may be declared in a single file.
         However, you can declare a unit package at the start
         of the file (preceded only by comments or use
         statements), and the rest of the file will be taken
         as being the body of the package. In this case, the
         curly braces are not required.

         unit module M;
         # ... stuff goes here instead of in {}'s

    I thought methods had to be part of classes?  Or
    how the above relates to the methods in the module.

    I am confused.


Methods are just subroutines which take an implicit first argument: the object they are operating on.

All the methods in the module you mentioned are methods of the Informative::Informing class. You can check it by matching the '{' at the beginning of the class declaration with the corresponding '}'; method show() is inside the class.

OTOH there's a "sub inform" in the "Informative" namespace which is not inside a class and is indeed a simple sub, even if it has been localized in that namespace. You can call that sub without prepending its namespace, since it has been declared as "is export."

--
Fernando Santagata


Hi Fernando,

I get all that and well written.  Thank you!

Here is my problem.  I am using Geany as it works well
over "ssh-X11" and I have to do a lot of work remotely.
And it is beautifully cross platform (I support Linux,
Windows, and Mac).

In Geany, the beginning "{" and ending "}" brackets color
blue (red if you forget one).  I CAN'T FIND THE ENDING
BRACKET!   I also can't find the "Informative::Informing
class" declaration.

This is me being blind, not misunderstanding.

Since you have found them, would you mind giving me
the line number for the "Informative::Informing class" declaration and the line numbers for the beginning
and ending curly brackets?

Many thanks,
-T

Reply via email to