package Bio::Das::Util;
use strict;
require Exporter;
use Carp 'croak';
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
@ISA = qw(Exporter);
@EXPORT = qw(rearrange);
@EXPORT_OK = qw(rearrange);
$VERSION = '0.01';
# utility routine
sub rearrange {
my($order,@param) = @_;
return unless @param;
my %param;
if (ref $param[0] eq 'HASH') {
%param = %{$param[0]};
} else {
return @param unless (defined($param[0]) && substr($param[0],0,1) eq '-');
my $i;
for ($i=0;$i<@param;$i+=2) {
$param[$i] =~ s/^\-//; # get rid of initial - if present
}
%param = @param; # convert into associative array
}
my(@return_array);
local($^W) = 0;
my($key)='';
foreach $key (@$order) {
my($value);
if (ref($key) eq 'ARRAY') {
foreach (@$key) {
last if defined($value);
$value = $param{$_};
delete $param{$_};
}
} else {
$value = $param{$key};
delete $param{$key};
}
push(@return_array,$value);
}
push (@return_array,{%param}) if %param;
return @return_array;
}
1;