foo
[gitmo/Moose-Autobox.git] / examples / units / bytes.pl
CommitLineData
be334002 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use Moose::Autobox;
7
8{
9 package Units::Bytes;
10 use Moose::Role;
11 use Moose::Autobox;
12
13 sub bytes { $_[0] }
14 sub kilobytes { $_[0] * 1024 }
15 sub megabytes { $_[0] * 1024->kilobytes }
16 sub gigabytes { $_[0] * 1024->megabytes }
17 sub terabytes { $_[0] * 1024->gigabytes }
18
19 {
20 no warnings 'once'; # << squelch the stupid "used only once, maybe typo" warnings
21 *byte = \&bytes;
22 *kilobyte = \&kilobytes;
23 *megabyte = \&megabytes;
24 *gigabyte = \&gigabytes;
25 *terabyte = \&terabytes;
26 }
27}
28
244bd352 29Moose::Autobox->mixin_additional_role(SCALAR => 'Units::Bytes');
be334002 30
31$\ = "\n";
32
33print "5 kilobytes are " . 5->kilobytes . " bytes";
34print "2 megabytes are " . 2->megabytes . " bytes";
35print "1 gigabyte is " . 1->gigabyte . " bytes";
36print "2 terabyes are " . 2->terabytes . " bytes";
37