Skip to content
A Perl6 module for converting large numbers in bytes to kb, mb, gb, and so on.
Other
  1. Other 100.0%
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib/Number/Bytes
t
.gitignore
.travis.yml
LICENSE
META6.json
README.md

README.md

NAME

Number::Bytes::Human - Converts byte count into an easy to read format.

SYNOPSIS

# Functional interface
use Number::Bytes::Human :functions;
my $size = format-bytes 1024; # '1K'

my $bytes = parse-bytes '1.0K'; # 1024

exit;

# OO Interface
my Number::Bytes::Human;
my $human = Number::Bytes::Human.new;

my $size = $human.format(1024); # '1K'
my $bytes = $human.parse('1.0K'); # 1024

DESCRIPTION

This is the Perl6 re-write of CPAN's Number::Bytes::Human. Special thanks to the original author: Adriano R. Ferreira, ferreira@cpan.org

NOTE: This module is version 0.0.X and is subject to significant changes in the API with no notice.

The Number::Bytes::Human Perl6 module converts large numbers of bytes into a more human friendly format, e.g. '15G'. The functionality of this module will be similar to the -h switch on Unix commands like ls, du, and df.

Currently the module rounds to the nearest whole unit, this behavior will likely change in the future.

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
You can’t perform that action at this time.