|
Revision 11293, 490 bytes
(checked in by hirose31, 5 years ago)
|
|
also accept "N.unit" format
2->daysに加えて、2.daysも受け付けるようにした。
">"がシェルでリダイレクトとして解釈されてうざいので。
|
-
Property svn:executable set to
*
|
| Line | |
|---|
| 1 | #!/usr/bin/env perl |
|---|
| 2 | use strict; |
|---|
| 3 | use UNIVERSAL::require; |
|---|
| 4 | die q{[usage] |
|---|
| 5 | $ unitary '2->megabytes' '3.days' |
|---|
| 6 | 2097152 |
|---|
| 7 | 259200 |
|---|
| 8 | } if @ARGV == 0 || $ARGV[0] =~ /^--?h/; |
|---|
| 9 | my @modules; |
|---|
| 10 | for my $m qw(autobox autobox::Numeric::Bytes autobox::Numeric::Time) { |
|---|
| 11 | push @modules, $m if $m->require; |
|---|
| 12 | } |
|---|
| 13 | my $use = join '', map {"use $_; "} @modules; |
|---|
| 14 | for (@ARGV) { |
|---|
| 15 | s/^(\d+(?:\.\d+)?)\.([a-zA-Z]+)$/$1->$2/; # transform N.unit to N->unit |
|---|
| 16 | my $e = "$use $_"; |
|---|
| 17 | # warn $e."\n"; |
|---|
| 18 | print eval($e), "\n"; |
|---|
| 19 | } |
|---|