Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^2: Module for file size arithmetic

by mirod (Canon)
on Mar 12, 2009 at 12:31 UTC ( [id://750143]=note: print w/replies, xml ) Need Help??


in reply to Re: Module for file size arithmetic
in thread Module for file size arithmetic

You're right about the B/b, the original data is in KB/MB/GB (it's awstats data).

Beyond that, I don't really care about precision. Actually I _really_ don't care about precision, I just want to aggregate results from several sites, and get a ballpark figure, in a readable form, so with 1 or 2 digit precision. So the 1024/1000 thingie is really not a problem in that case (awstats uses 1024, like a good citizen BTW).

It's not that complicated to do it myself, I guess I just expected CPAN to provide it.

Replies are listed 'Best First'.
Re^3: Module for file size arithmetic
by Marshall (Canon) on Mar 12, 2009 at 14:38 UTC
    WOW! We've got some "industrial strength" stuff in other posts! I just hacked out something fairly "stupid" that does "MB math". So this is the "dumb" version!
    #!usr/bin/perl -w use strict; my %scale= (MB => 1, GB => 1000, KB => 0.001); sub scale2MB { my $string = shift; $string =~ tr/a-z/A-Z/; if ($string =~ /^[\d.]+$/){return $string}; my ($num,$suffix) = ($string =~ /^([\d.]+)\s*(\w+)/); return ($num * $scale{$suffix}); } foreach ("10", "10.5", "10 GB", "1kb", "10.1 GB") { print "$_=",scale2MB($_),"\n"; } my $val = scale2MB("753mb") + scale2MB("50 kb"); print "753MB+50KB is: $val\n"; __END__ prints 10=10 10.5=10.5 10 GB=10000 1kb=0.001 10.1 GB=10100 753MB+50KB is: 753.05

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://750143]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (3)
As of 2024-04-25 07:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found