3 Bio::DB::GFF::Util::Rearrange - rearrange utility
7 use Bio::DB::GFF::Util::Rearrange 'rearrange';
9 my ($arg1,$arg2,$arg3,$others) = rearrange(['ARG1','ARG2','ARG3'],@args);
13 This is a different version of the _rearrange() method from
14 Bio::Root::Root. It runs as a function call, rather than as a method
15 call, and it handles unidentified parameters slightly differently.
17 It exports a single function call:
21 =item @rearranged_args = rearrange(\@parameter_names,@parameters);
23 The first argument is an array reference containing list of parameter
24 names in the desired order. The second and subsequent arguments are a
25 list of parameters in the format:
27 (-arg1=>$arg1,-arg2=>$arg2,-arg3=>$arg3...)
29 The function calls returns the parameter values in the order in which
30 they were specified in @parameter_names. Any parameters that were not
31 found in @parameter_names are returned in the form of a hash reference
32 in which the keys are the uppercased forms of the parameter names, and
33 the values are the parameter values.
47 Lincoln Stein E<lt>lstein@cshl.orgE<gt>.
49 Copyright (c) 2001 Cold Spring Harbor Laboratory.
51 This library is free software; you can redistribute it and/or modify
52 it under the same terms as Perl itself.
56 package Bio
::DB
::GFF
::Util
::Rearrange
;
60 use vars
qw(@EXPORT @EXPORT_OK);
61 use base qw(Exporter);
62 @EXPORT_OK = qw(rearrange);
63 @EXPORT = qw(rearrange);
64 use Bio
::Root
::Version
;
68 my($order,@param) = @_;
72 if (ref $param[0] eq 'HASH') {
73 %param = %{$param[0]};
75 return @param unless (defined($param[0]) && substr($param[0],0,1) eq '-');
78 for ($i=0;$i<@param;$i+=2) {
79 $param[$i]=~s/^\-//; # get rid of initial - if present
80 $param[$i]=~tr/a-z/A-Z/; # parameters are upper case
83 %param = @param; # convert into associative array
90 foreach $key (@
$order) {
92 if (ref($key) eq 'ARRAY') {
94 last if defined($value);
99 $value = $param{$key};
102 push(@return_array,$value);
104 push (@return_array,\
%param) if %param;
105 return @return_array;