Thanks so much, Piers !! Perfectly what I was looking for and Doh! is
the right expression ... guess I should have read more before I posted
here :-)
Nitin
On Mar 7, 2005, at 4:07 PM, Piers Harding wrote:
You could potentially emulate the Perl way using the macros and
functions.
See the perlapi (perldoc) for:
sortsv - to do the sort (doh!)
hv_iterkeysv - to grab the keys, and av_push to build the array for
sorting.
# warning - example stolen from tt2 code
AV *result = newAV();
HE *he;
hv_iterinit(hash);
while ((he = hv_iternext(hash))) {
av_push(result, SvREFCNT_inc((SV *) hv_iterkeysv(he)));
}
sortsv(AvARRAY(result), av_len(result)+1, Perl_sv_cmp_locale);
Or something similar (there are other sorts in pp_sort.c I think).
Cheers.
On Mon, Mar 07, 2005 at 01:13:24PM -0500, [EMAIL PROTECTED] wrote:
Hi Guys
I am re-implementing a perl subroutine in C and this perl-subroutine
sorts the key of a hash given to it as input before using it. This
hash
usually hold about 3000-4000 keys. So I am wondering what to do here:
1) Create another hash in perl-space and sort its keys using the perl
sort() function and then pass that hash as input
2) Write my own sort function or, even better, use one from a better
source like the Gnu Scientific Library or another third party library.
So, what I am basically asking is if it is worth replaceing perl's
sort
function with another one in inlined space or not ?
Thanks !
Nitin
--
http://www.piersharding.com
http://search.cpan.org/~piers/