If you make it an adjective, it works:
use File::Glob ':UNIVERSAL';
use File::Glob ':UNIVERSAL csh_glob';
I tend to think of it as wanting to modify "use" as an adverb of location
not the package name or function name. And yes, adverbs can float better
than adjectives in English, but they don't like being put here:
# (we'll skip the ":GLOBALLY" and ":UBIQUITOUSLY" this time around)
use File::Glob qw(:UNIVERSALLY &csh_glob);
use File::Glob qw(:HERE &csh_glob); # redundant
use File::Glob qw(:PROGRAM-WIDE &csh_glob);
use File::Glob ':ALL OVER THE PLACE', '&posix_glob';
whereas if you put the modifer at the end of the list, it
can be an adverb for "use" once again.
use File::Glob qw(&glob :UNIVERSALLY);
Even though this isn't really like CLI programs that expect their
modifiers right after the verb (which we can't do, because we need
the package their) and before their objects.
execute -quickly someproggy
I think the problem is that the package is the genitive for the
noun list following, so
use File::Glob '&csh_glob';
Please use the File::Glob module's csh_glob function.
Please use File::Glob's &csh_glob.
And English isn't happy interposing a non-immediate modifier between
the possessive and the possessed. (Yes, I just said that csh is
possessed, but we knew that. :-) It's something of a determiner
in this regard. So we could use File::Glob's bodacious &glob but
we couldn't use File::Glob's universal &glob, because then universal
would end up modifying "&glob" not "use", and there is no
UNIVERSAL::glob, but rather a CORE::glob. Hm...
use File::Glob qw/CORE glob/;
use File::Glob qw/:CORE glob/;
Migrated from rt.perl.org#2713 (status was 'open')
Searchable as RT2713$
The text was updated successfully, but these errors were encountered: