+sub undef_printable { my ($ov)= @_; defined $ov ? $ov : '?'; };
+
+sub commodsinorder_print1 ($$) {
+ my ($keyword,$commod) = @_;
+ printf("%s\t%-40s %10s %s",
+ $keyword,
+ $commod,
+ undef_printable($commods{$commod}{Ordval}),
+ undef_printable($commods{$commod}{Class}))
+ or die $!;
+}
+
+sub main__commodsinorder () {
+ parse_info_serverside();
+ my $last_ov;
+ foreach my $commod (@commods_inorder) {
+ my $ov= $commods{$commod}{Ordval};
+ commodsinorder_print1('found',$commod);
+ if (defined $ov) {
+ if (defined $last_ov && $ov <= $last_ov) {
+ print " out-of-order" or die $!;
+ }
+ $last_ov= $ov;
+ }
+ print "\n" or die $!;
+ }
+ foreach my $commod (sort {
+ undef_printable($commods{$a}{Ordval}) cmp
+ undef_printable($commods{$b}{Ordval})
+ } keys %commods) {
+ next if exists $commod{$commod};
+ commodsinorder_print1('none',$commod);
+ print "\n" or die $!;
+ }
+}