guadalupe
asked on
Module to convert any multiple of bytes to any other multiple?
Is there a module that can handle conversion from any multiple of byte to any other multiple? For example
$GB = &convert(kB,GB,$num);
This sub would take the first arg as what $num IS (a # of kB) and transform to GB.
$kB = &convert(GB,kB,$num);
This would take $num understood to be in GB and convert to kB...
The idea is faily simple but the multiples get annoying to have to account for all cases...?
$GB = &convert(kB,GB,$num);
This sub would take the first arg as what $num IS (a # of kB) and transform to GB.
$kB = &convert(GB,kB,$num);
This would take $num understood to be in GB and convert to kB...
The idea is faily simple but the multiples get annoying to have to account for all cases...?
ASKER
A stupid but good improvment:
#!/usr/local/bin/perl
print &convert_k($ARGV[0],$ARGV[ 1],$ARGV[2 ]);
sub convert_k($$$)
{
($from,$to,$number) = @_;
$from = uc($from);
$to = uc($to);
#Set up hash for math conversions between bytes - kB and MB GB
$byteMath{"B"} = 1;
$byteMath{"KB"} = 2;
$byteMath{"MB"} = 3;
$byteMath{"GB"} = 4;
$byte_multiple = 1024;
$power = $byteMath{$from} - $byteMath{$to};
return $number * ($byte_multiple ** $power);
}
#!/usr/local/bin/perl
print &convert_k($ARGV[0],$ARGV[
sub convert_k($$$)
{
($from,$to,$number) = @_;
$from = uc($from);
$to = uc($to);
#Set up hash for math conversions between bytes - kB and MB GB
$byteMath{"B"} = 1;
$byteMath{"KB"} = 2;
$byteMath{"MB"} = 3;
$byteMath{"GB"} = 4;
$byte_multiple = 1024;
$power = $byteMath{$from} - $byteMath{$to};
return $number * ($byte_multiple ** $power);
}
ASKER CERTIFIED SOLUTION
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
ASKER
Thank you! Very nice though I'm still curious if one already exists just to see how "they" chose to do it...
ASKER
sub convert_k($$$)
{
($from,$to,$number) = @_;
#Set up hash for math conversions between bytes - kB and MB GB
$byteMath{"B"} = 1;
$byteMath{"kB"} = 2;
$byteMath{"MB"} = 3;
$byteMath{"GB"} = 4;
$byte_multiple = 1024;
$power = $byteMath{$from} - $byteMath{$to};
return $number * ($byte_multiple ** $power);
}
I had hoped to not have to right the code as no idea came to mind and then it hit me. I would still be interested to know if a modual exists. But the code above is good so take it if it interests you!