different keywords passed to a well understood form: "eval-when". what each opt does can be horrendously complicated if you so chose. however i understand the evaluation rules and can just focus on learning what each option does. require on the other hand can take a string, but it
can also take a VERSION expression that will then be compared to
$]. but wait, there's more. it can also be a literal v5.6.1 - that
works too. otherwise it will look for a library. if the expression is
a bare word require will conveniently add the .pm for
you, however notice that $lib = 'somelib' require $lib is not a
bare word therefore you need to add the '.pm' ...
i'm tired already.
The original post was about Perl 6, though.
Lisp and Python aren't as simple as you think they are, and Perl isn't as complicated, either.