in reply to Dynamic sort algorithm selection
Save this as foo.pl, and...#!/usr/bin/perl -w use strict; my $sortname = shift; print join ' ', sort $sortname 1..20; sub num { $a <=> $b } sub alpha { $a cmp $b }
This is consistent w/ the sort docs:% foo.pl num 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 % foo.pl alpha 1 10 11 12 13 14 15 16 17 18 19 2 20 3 4 5 6 7 8 9
However, I do seem to remember running into your situation in the past. I don't know what version of Perl I was using then; probably 5.004 or some such. I'm now using 5.005_03, which could explain it.SUBNAME may be a scalar variable name (unsubscripted), in which case the value provides the name of (or a reference to) the actual subroutine to use. In place of a SUBNAME, you can provide a BLOCK as an anonymous, in-line sort subroutine.
If you are using a real database, though, I would suggest that you try using "order by", as it's likely to be faster than anything you can do yourself, particularly if you have your columns indexed.
|
|---|