Softpedia
 


LINUX CATEGORIES:



GLOBAL PAGES >>
NEWS ARCHIVE >>
SOFTPEDIA REVIEWS >>
MEET THE EDITORS >>
WEEK'S BEST
  • Linux Kernel 3.9.3 / 3....
  • LibreOffice 3.6.6 / 4.0.3
  • MPlayer 1.1.1
  • systemd 204
  • Arch Linux 2013.05.01
  • Blender 2.67
  • KDE Software Compilatio...
  • CrunchBang Linux Stable...
  • Elementary OS 0.1 / 0.2...
  • SystemRescueCd 3.6.0
  • Home > Linux > Programming > Perl Modules

    Number::Bytes::Human 0.07

    Download button

    No screenshots available
    Downloads: 399  View global page NEW!  Tell us about an update
    User Rating:
    Rated by:
    NOT RATED
    0 user(s)
    Developer:

    License / Price:

    Last Updated:

    Category:
    Adriano R. Ferreira | More programs
    Perl Artistic License / FREE
    July 4th, 2007, 02:05 GMT
    ROOT / Programming / Perl Modules

     Read user reviews (0)  Refer to a friend  Subscribe

    Number::Bytes::Human description

    A Perl module that can convert byte count to human readable format.

    Number::Bytes::Human is a Perl module that can convert byte count to human readable format.

    SYNOPSIS

    use Number::Bytes::Human qw(format_bytes);
    $size = format_bytes(0); # '0'
    $size = format_bytes(2*1024); # '2.0K'

    $size = format_bytes(1_234_890, bs => 1000); # '1.3M'
    $size = format_bytes(1E9, bs => 1000); # '1.0G'

    # the OO way
    $human = Number::Bytes::Human->new(bs => 1000, si => 1);
    $size = $human->format(1E7); # '10MB'
    $human->set_options(zero => '-');
    $size = $human->format(0); # '-'

    THIS IS ALPHA SOFTWARE: THE DOCUMENTATION AND THE CODE WILL SUFFER CHANGES SOME DAY (THANKS, GOD!).

    This module provides a formatter which turns byte counts to usual readable format, like '2.0K', '3.1G', '100B'. It was inspired in the -h option of Unix utilities like du, df and ls for "human-readable" output.

    From the FreeBSD man page of df: http://www.freebsd.org/cgi/man.cgi?query=df

    "Human-readable" output. Use unit suffixes: Byte, Kilobyte,
    Megabyte, Gigabyte, Terabyte and Petabyte in order to reduce the
    number of digits to four or fewer using base 2 for sizes.

    byte B
    kilobyte K = 2**10 B = 1024 B
    megabyte M = 2**20 B = 1024 * 1024 B
    gigabyte G = 2**30 B = 1024 * 1024 * 1024 B
    terabyte T = 2**40 B = 1024 * 1024 * 1024 * 1024 B

    petabyte P = 2**50 B = 1024 * 1024 * 1024 * 1024 * 1024 B
    exabyte E = 2**60 B = 1024 * 1024 * 1024 * 1024 * 1024 * 1024 B
    zettabyte Z = 2**70 B = 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024 B
    yottabyte Y = 2**80 B = 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024 B

    I have found this link to be quite useful:

    http://www.t1shopper.com/tools/calculate/

    If you feel like a hard-drive manufacturer, you can start counting bytes by powers of 1000 (instead of the generous 1024). Just use bs => 1000.

    But if you are a floppy disk manufacturer and want to start counting in units of 1024000 (for your "1.44 MB" disks)? Then use bs => 1_024_000.

    If you feel like a purist academic, you can force the use of metric prefixes according to the Dec 1998 standard by the IEC. Never mind the units for base 1000 are ('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB') and, even worse, the ones for base 1024 are ('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB') with the horrible names: bytes, kibibytes, mebibytes, etc. All you have to do is to use si => 1. Ain't that beautiful the SI system? Read about it:

    http://physics.nist.gov/cuu/Units/binary.html

    You can try a pure Perl "ls -lh"-inspired command with the one-liner, er, two-liner:

    $ perl -MNumber::Bytes::Human=format_bytes
    -e 'printf "%5s %sn", format_bytes(-s), $_ for @ARGV' *

    Why to write such a module? Because if people can write such things in C, it can be written much easier in Perl and then reused, refactored, abused. And then, when it is much improved, some brave soul can port it back to C (if only for the warm feeling of painful programming).

    Product's homepage

    Requirements:

    · Perl

      


    TAGS:

    convert byte count | human readable format | Perl class | Number | convert | byte

    Go to top

    WindowsGamesDriversMacLinuxScriptsMobileHandheldNews

    SUBMIT PROGRAM   |   ADVERTISE   |   GET HELP   |   SEND US FEEDBACK   |   RSS FEEDS   |   UPDATE YOUR SOFTWARE   |   ROMANIAN FORUM