2014-09-19 44 views
5

傳遞定製單位換算我已經定義了以下自定義單位(僞代碼):對稱和在Perl

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/86400相反的 是g(y)=y*86400

  • 可根據需要應用傳遞性。例如,如果unix_seconds = nasa_seconds + 946728000(通過功能反轉)和unix_days = unix_seconds/86400,我們可以將它們組合成直接從nasa_seconds轉換爲unix_days

如果需要 ,我可以用不尋常的方式編寫我的轉換公式。例如,攝氏華氏可以寫成:

C to F: *1.8 +32 

這種形式很容易反轉:只要按照步驟向後和 反向,即:

F to C: -32 /1.8 

難道這樣的事情存在?

回答

5

Physics::Unit應提供您需要的設施。

+0

太棒了,謝謝!我沒有意識到有這樣的軟件包,可以讓你定義自己的單元。 – barrycarter 2014-09-20 11:10:06