NAME
Format::FileSize - Perl extension for formating file sizes
SYNOPSIS
use Format::FileSize; my $size= formatted_size( -s $ARG[0]); print "$ARG[0] $size\n";
ABSTRACT
Format::FileSize exports one function: formatted_size, which takes a size and returns a nicely formated number.
It can also be configured to format other types of data.
DESCRIPTION
The number is formated so that it looks like n.nn U or n U where U is one of '', K, M, G, T, P.
EXPORT
formatted_size <$size>
formatted_size takes a file size and returns it nicely formatted.
You can probably stop reading here.
By default the number is given as a number of units. Units are '' (empty), K, M, G, T, P. The number is formatted with 2 decimals if < 10, with 1 if < 100 and with no decimals if > 100.
You should definitely stop reading HERE!
You can add (named) options after the size.
Options are:
- precision => <$nb>
- $nb must be an integer from 0 to 4.
Numbers are always formatted with this number of digits after the dot.
- nb_dec => <$hasref_trigger2precision>
$hasref_trigger2precisionis a hashref that controls how many digits are displayed, depending on the integer part of the number.The default is
nb_dec => { 0 => 2, 10 => 1, 100 => 0 }Which means that numbers between 0 and 10 are displayed with 2 digits after the dot, numbers 10 and 100 with one digit after the dot, and only the integer part is displayed for numbers above 100
You cannot use both
precisionandnb_dec.- symbols => <$arrayref_list_of_symbols>
- Maybe you don't like the default units. No problem, you can change them by passing a list to
formatted_size symbols => [ '', ' Kb', ' Mb', ' Gb', ' Tb', ' Waouh!' ]
A few notes:
- don't forget the initial empty string if you don't want sizes under 1 Kb to get a unit
- the space between the number and the unit is part of the unit string, don't forget it
- factor
- By default
formatted_sizeassumes a factor of 1024 between 2 units, but of course hard disk manufacturers use this strange (at least for computer geeks) system where a Kb is really 1000 bytes, and a Mb is 1000 Kb. Thefactoroption changes this: factor => 1000
- keep_size => <left|right>
- It can be convenient, when processing an output that's already formatted for example, to have the formatted string be the same size as the original string.
Use
keep_sizeto force the string to keep the same size. The code will try as hard as possible, even if means loosing precision.
SEE ALSO
Time::Duration
AUTHOR
Michel Rodriguez, <mirod@cpan.org
COPYRIGHT AND LICENSE
Copyright 2003 by Michel Rodriguez
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.