Smylers wrote:
Randal L. Schwartz writes:

"Smylers" == Smylers  <[EMAIL PROTECTED]> writes:
Smylers> No: no aliases.  Perl does not have a tradition of these,

except "for"/"foreach". :)

I don't reckon one instance is enough to be labelled a tradition!

(Um ... actually I forgot about that one.  But if I had considered it I
still wouldn't've considered it to be a tradition.  Honest.)

Tradition is not the issue, especially as Perl 5 did not have macros, so there was no "clean" way to write aliases (you had to muck with globs to directly munge the symbol table). Still, look at the aliases provided in the standard modules: - this is nothing BUT aliases
        File::Copy - mv, cp
        File::Compare - cmp
        Cwd - cwd
        IO::Handle - gets

"grep" is part of Perl 6's Unix legacy, just as "." is part of its "modern high level language" legacy or "-e" is part of its shell legacy.

These things are good ideas that stuck, and as "grep" is now a verb in many sub-jargons, it makes sense to provide it as an alias for whatever new-fangled term we decide is required to convince newbies to use it (by the way, newbies don't use grep because list transforms confuse and intimidate, not because of the name).

Should it come with a tag? Maybe (in fact, I think all of the -X tests should, now that we've decided that we want to keep -Inf as an error).

In general, we should probably have a tree of such tags that different modules can use as they see fit. For example:

        :compat - pull in all compatibility aliases
                :perl5 aka
                :compat<perl5> aka
                :language<perl5> - Perl 5 compat aliases
                :os - pull in all OS-specific aliases
                        :os<posix> - pull in all POSIX aliases
                        :os<windows> - pull in all Windows aliases
                :language<...> - (e.g. python or c++) language aliases

Almost all modules would do nothing at all with these, and most that do anything would stop at :compat, but a few (filesystem-related modules, list manipulation, etc) would dip down into the lower levels.

In this way, there is uniformity of expectations. You can always use :compat if you want a full-tilt namespace, and it should work, but if you want P5 compat, you can just use :perl5 and get what you expect (in terms of names, not grammar).

Reply via email to