in reply to Bucket sort - reducing memory requirements and preserving speed

The bucket algorithm depends, as you know, upon first distributing the data into “buckets,” then, by some unspecified means, sorting each bucket.   Many other sorting algorithms designed for use with very large datasets also work in part by subdividing the inputs into smaller, more manageable chunks that can then be sorted e.g. “in memory,” but their approach toward that splitting process are much more aware of clustering of key distributions, to which simple-minded algorithms like Bucket are especially prone.

In short, if you want a practical sort for in-memory work, the sort verb is hard to beat ... and “in memory” is often sufficient in today’s multi-gigabyte RAM sizes.   Otherwise, modules such as Sort::External may be appropriate.   Or, the use of an external sorting command or tool, e.g. SyncSort.