in reply to when to capitalize package variables

G'day Lotus1,

You could follow the convention used by Data::Dumper. It has a couple of screenfuls of "Configuration Variables":

$Data::Dumper::Indent $Data::Dumper::Trailingcomma $Data::Dumper::Purity ... lots more ... $Data::Dumper::Sortkeys $Data::Dumper::Deparse $Data::Dumper::Sparseseen

So that would suggest: $Data::GUID::Any::Uppercase.

That, however, is counter-intuitive. If the purpose is to choose lowercase, $Data::GUID::Any::Lowercase would, in my opinion, make a lot more sense. Default would be FALSE; set it to TRUE if you want lowercase.

I see you've already received conflicting advice; you may get more. There's really no convention for this; for instance, I've frequently seen $DEBUG. Perhaps the best advice is to make your own choice then use it consistently across your modules. Just to expand on the Data::Dumper example, I know I'd find it very annoying if I had to continually check the documentation to see whether I needed useQQ or useQq or UseQq or ... you get the picture: they all have the same format; in this case, Useqq.

— Ken

Replies are listed 'Best First'.
Re^2: when to capitalize package variables
by Lotus1 (Vicar) on Feb 06, 2021 at 17:51 UTC
    That, however, is counter-intuitive. If the purpose is to choose lowercase, $Data::GUID::Any::Lowercase would, in my opinion, make a lot more sense. Default would be FALSE; set it to TRUE if you want lowercase.

    Good point. But I think the reason for that choice was to let the user do local $Data::GUID::Any::UC; to change the value to false. I'm doing my package variable the way you propose where I set it to '1' or do a ++ to activate it. The special variable $| works that way but that is something different. I digress.

    My variable is called $Data::QuickMemoPlus::Reader::suppress_header but I'm thinking I'll redo that now after all the good comments I've received.