I don't believe this code will do anything useful. It will assign a value to a variable literally named
$__PACKAGE__::myLog, which would be a very strange thing, as it would be no different from assigning to (again picking an arbitrary string)
$__WOOHOO__::myLog. It's a variable in the package called __PACKAGE__, not a variable in the current package.
__PACKAGE__ as a special token works only when it is not part of a larger string or construct. Perhaps what they really wanted was:
{
no strict;
${__PACKAGE__ . "::mylog"} = ...;
}
which would make more sense, making $mylog in the current package set to a value.
Update:
Of course, I now realized I could have simply used
${"mylog"} = ... for that assignment. What I did was overkill. :)