File Coverage

blib/lib/Audio/DB/Util/Rearrange.pm
Criterion Covered Total %
statement 6 33 18.1
branch 0 12 0.0
condition 0 3 0.0
subroutine 2 3 66.6
pod 0 1 0.0
total 8 52 15.3


line stmt bran cond sub pod time code
1             package Audio::DB::Util::Rearrange;
2              
3             # $Id: Rearrange.pm,v 1.2 2005/02/27 16:56:25 todd Exp $ #
4              
5 1     1   6 use strict;
  1         1  
  1         39  
6             require Exporter;
7 1     1   5 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
  1         2  
  1         379  
8             @ISA = 'Exporter';
9             @EXPORT_OK = qw(rearrange);
10             @EXPORT = qw(rearrange);
11              
12             # default export
13             sub rearrange {
14 0     0 0   my($order,@param) = @_;
15 0 0         return unless @param;
16 0           my %param;
17              
18 0 0         if (ref $param[0] eq 'HASH') {
19 0           %param = %{$param[0]};
  0            
20             } else {
21 0 0 0       return @param unless (defined($param[0]) && substr($param[0],0,1) eq '-');
22              
23 0           my $i;
24 0           for ($i=0;$i<@param;$i+=2) {
25 0           $param[$i]=~s/^\-//; # get rid of initial - if present
26 0           $param[$i]=~tr/a-z/A-Z/; # parameters are upper case
27             }
28              
29 0           %param = @param; # convert into associative array
30             }
31              
32 0           my(@return_array);
33              
34 0           local($^W) = 0;
35 0           my($key)='';
36 0           foreach $key (@$order) {
37 0           my($value);
38 0 0         if (ref($key) eq 'ARRAY') {
39 0           foreach (@$key) {
40 0 0         last if defined($value);
41 0           $value = $param{$_};
42 0           delete $param{$_};
43             }
44             } else {
45 0           $value = $param{$key};
46 0           delete $param{$key};
47             }
48 0           push(@return_array,$value);
49             }
50 0 0         push (@return_array,{%param}) if %param;
51 0           return @return_array;
52             }
53              
54             1;