5

我已经定义了以下自定义单位(伪代码):

unix_days = unix_seconds/86400; 
nasa_seconds = unix_seconds - 946728000; 

这让我可以直接转换unix_secondsunix_days或转换 unix_secondsnasa_seconds.

但是,如果不编写另一个公式,我无法直接转换unix_days回。unix_seconds

同样,如果不编写其他公式,我也无法转换nasa_seconds为。unix_days

是否有一个聪明的 Perl 子例程或包可以让我在不编写额外函数的情况下做到这一点?更具体地说,一个自定义单位转换包:

  • 可以算出单位换算函数的倒数。例如,它的反义词f(x)=x/86400g(y)=y*86400

  • 可以根据需要应用传递性。例如,如果unix_seconds = nasa_seconds + 946728000(通过反函数)和unix_days = unix_seconds/86400,我们可以将它们结合起来直接从 转换nasa_secondsunix_days

如果需要,我可以以不寻常的方式编写我的转换公式。例如,摄氏到华氏可以写成:

C to F: *1.8 +32 

这种形式很容易倒转:只需倒过来和倒过来,即:

F to C: -32 /1.8 

这样的事情存在吗?

4

1 回答 1

4

Physics::Unit应该提供您需要的设施。

于 2014-09-19T21:36:09.187 回答