X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXUtil.pm;h=667194afb52ceeaf35010e3e9100f8b2bca005f8;hb=57b5e464bc44ae8eee23ab94c1f499f527595dc9;hp=c82705b7bb68507cb0725f69f7dafc03df5b08ef;hpb=6f566611af29f5c7af653abf8cec2760a0c25b6e;p=spider.git diff --git a/perl/DXUtil.pm b/perl/DXUtil.pm index c82705b7..667194af 100644 --- a/perl/DXUtil.pm +++ b/perl/DXUtil.pm @@ -8,10 +8,13 @@ package DXUtil; +use Date::Parse; +use Carp; + require Exporter; @ISA = qw(Exporter); -@EXPORT = qw(atime ztime cldate cldatetime slat slong yesno promptf - print_all_fields +@EXPORT = qw(atime ztime cldate cldatetime slat slong yesno promptf parray parraypairs + print_all_fields cltounix ); @month = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); @@ -56,6 +59,16 @@ sub cldatetime return "$date $time"; } +# return a unix date from a cluster date and time +sub cltounix +{ + my $date = shift; + my $time = shift; + $date =~ s/^\s*(\d+)-(\w\w\w)-(19\d\d)$/$1 $2 $3/; + $time =~ s/^(\d\d)(\d\d)Z$/$1:$2 +0000/; + return str2time("$date $time"); +} + # turn a latitude in degrees into a string sub slat { @@ -102,6 +115,29 @@ sub promptf return ($priv, $prompt); } +# take an arg as an array list and print it +sub parray +{ + return join(', ', @{shift}); +} + +# take the arg as an array reference and print as a list of pairs +sub parraypairs +{ + my $ref = shift; + my $i; + my $out; + + for ($i = 0; $i < @$ref; $i += 2) { + my $r1 = @$ref[$i]; + my $r2 = @$ref[$i+1]; + $out .= "$r1-$r2, "; + } + chop $out; # remove last space + chop $out; # remove last comma + return $out; +} + # print all the fields for a record according to privilege # # The prompt record is of the format ',[,'