Hi Emily,
This is untested and inelegant, but might get you closer to what you want:
my @data = $c->model('DB::MyModel')->search(...);
@data = sort { $a->sort_column =~ /^(.*)(\d*)$/;
my $a_prefix = $1; my $a_suffix = $2;
$b->sort_column =~ /^(.*)(\d*)$/;
my $b_prefix = $1; my $b_suffix = $2;
$a_prefix cmp $b_prefix ||
$a_suffix <=> $b_suffix } @data;
Byron
From: Emily Heureux [mailto:[EMAIL PROTECTED]
Sent: Friday, June 13, 2008 2:47 PM
To: 'DBIx::Class user and developer list'
Subject: [Dbix-class] natural sort by column
Ok, I have tried to accomplish my 'natural' sort in mysql, template toolkit,
and in perl to no avail. I have a result set returned by using search like
this:
$rs = $c->model('DB::TableName')->search(...);
I have a 'natural sort' function in perl that takes and returns an array sorted
the way a human would sort (john10 would come AFTER john2, etc) but how do I
get my $rs or even $col = $rs->get_column('column name') into a hash I can use
from within perl?
-Emily
_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]