Fields.pm 672 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package Dpkg::Fields;
  2. use strict;
  3. use warnings;
  4. use Exporter;
  5. our @ISA = qw(Exporter);
  6. our @EXPORT_OK = qw(capit set_field_importance sort_field_by_importance);
  7. sub capit {
  8. my @pieces = map { ucfirst(lc) } split /-/, $_[0];
  9. return join '-', @pieces;
  10. }
  11. my %fieldimps;
  12. sub set_field_importance(@)
  13. {
  14. my @fields = @_;
  15. my $i = 1;
  16. grep($fieldimps{$_} = $i++, @fields);
  17. }
  18. sub sort_field_by_importance($$)
  19. {
  20. my ($a, $b) = @_;
  21. if (defined $fieldimps{$a} && defined $fieldimps{$b}) {
  22. $fieldimps{$a} <=> $fieldimps{$b};
  23. } elsif (defined($fieldimps{$a})) {
  24. -1;
  25. } elsif (defined($fieldimps{$b})) {
  26. 1;
  27. } else {
  28. $a cmp $b;
  29. }
  30. }
  31. 1;