> On 14/09/2018 12:59, Todd Chester wrote: >> Hi All, >> >> I am in the process of converting a YUGE program I wrote in >> Perl 5 to Perl 6. I used "xx::yy" at lot for readability >> so I could tell where something came from. >> >> I take it "::" means something different is Perl 6 than Perl 5. >> >> $ p6 'use lib "/home/linuxutil"; use PrintColors; >> PrintColors::PrintRed "Hi\n";' >> >> Could not find symbol '&PrintRed' >> in block <unit> at -e line 1 >> >> In p5 "PrintColors::PrintRed" means to use the routine called >> "PrintRed" found in a modules called "PrintColors". >> >> Does p6 have an equivalent? >> >> Many thanks, >> -T
On 09/14/2018 04:01 AM, Timo Paulssen wrote:
It's important for the PrintRed sub inside PrintColors to be declared "our", otherwise it is "my" scoped, i.e. limited to the lexical extent of the module file.
sub PrintRed ( $Str ) is export { print color('bold'), color('red'), "$Str", color('reset'); }
I have never understood the use of "our" in a module. I can't tell the difference. Also, did you answer my question about "::" and did it just go over my head? The p5 guys use to tell me "its lexiconical", meaning it was figured out on the fly. (Took me forever to catch on.) Is that any relation to your use of the word "lexical"? https://www.dictionary.com/browse/lexical?s=t adjective of or relating to the words or vocabulary of a language, especially as distinguished from its grammatical and syntactical aspects. of, relating to, or of the nature of a lexicon. -T