my $mysortref = sort_maker(
sub { lc($data{$a}[0]) cmp lc($data{$b}[0]) },
sub { lc($data{$a}[1]) cmp lc($data{$b}[1]) },
);
@results = sort $mysortref (keys %data);
print "@{$data{$_}}\n" for (@results);
sub sort_maker {
my @littlesubs = @_;
sub {
foreach my $sub (@littlesubs) {
my $result = $sub->();
return $result if $result;
}
};
}
####
HERNANDEZ HECTOR 456791 SAMSON 0217 2001-07-25 1963-08-01
VASQUEZ JOAQUIN 456789 SAMSON 0209 1990-11-14 1970-03-25
JONES TIMOTHY 803092 LAVER 0103 2001-03-19 1969-06-29
SMITH BETTY_SUE 698389 SAMSON 0211 1992-01-23 1949-08-12
####
lastname
firstname
cno
unit
ward
dateadmission
datebirth
####
my %parameters = (
lastname => [ qw( U a ) ],
firstname => [ qw( U a ) ],
cno => [ qw( U n ) ],
unit => [ qw( U s ) ],
ward => [ qw( U n ) ],
dateadmission => [ qw( D a ) ],
datebirth => [ qw( D a ) ],
);
####
my $results_ref =
$dp->sort_by_column( qw{ lastname firstname cno } );
####
sub { lc($data{$a}[0]) cmp lc($data{$b}[0]) },