[Templates] print "n" nicely if n = bytes
Jonathan Rockway
jon@jrock.us
Mon, 18 Sep 2006 11:30:33 -0500
BTW, there is a module to do this; Number::Bytes::Human.
Randal L. Schwartz wrote:
> From an upcoming magazine article (http://www.stonehenge.com/merlyn/UnixReview/col67.html):
>
> [% MACRO nice(n) BLOCK;
> IF n >= 1073741824 * 9.995;
> n / 1073741824 | format('%dG');
> ELSIF n >= 1073741824;
> n / 1073741824 | format('%.2gG');
> ELSIF n >= 1048576 * 9.995;
> n / 1048576 | format('%dM');
> ELSIF n >= 1048576;
> n / 1048576 | format('%.2gM');
> ELSIF n >= 1024 * 9.995;
> n / 1024 | format('%dK');
> ELSIF n >= 1024;
> n / 1024 | format('%.2gK');
> ELSE;
> n;
> END;
> END %]