X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXUtil.pm;h=667194afb52ceeaf35010e3e9100f8b2bca005f8;hb=57b5e464bc44ae8eee23ab94c1f499f527595dc9;hp=44ef7312fdad8c7fd7a0293dcf63f6e3840a5cea;hpb=07ea293f3919d2da76220b5fbc55b734008ed44c;p=spider.git diff --git a/perl/DXUtil.pm b/perl/DXUtil.pm index 44ef7312..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 ',[,' @@ -123,3 +159,4 @@ sub print_all_fields } return @out; } +