linux转换大小字节,linux – 将内存大小(人类可读)转换为Perl中的实际数字(字节)...

CPAN中是否有实际的包来转换这样的字符串:

my $string = "54.4M"

my $string2 = "3.2G"

以字节为单位的实际数字:

54,400,000

3,200,000,000

反之亦然.

原则上我最后要做的是总结所有内存大小.

解决方法:

use strict;

use warnings;

use Number::FormatEng qw(:all);

use Number::Format qw(:subs);

my $string = "54.4M" ;

my $string2 = "3.2G" ;

print format_number(unformat_pref($string)) , "\n";

print format_number(unformat_pref($string2)) , "\n";

__END__

54,400,000

3,200,000,000

顺便说一下,如果要对结果执行计算,则只需要unformat_pref.

由于Number::FormatEng用于工程符号转换(不是字节),因此其前缀区分大小写.如果要将其用于千字节,则必须使用小写k.

Number::Format会将这些字符串转换为实际字节(有点,几乎).

use Number::Format qw(:subs);

my $string = "54.4M" ;

my $string2 = "3.2G" ;

print round(unformat_number($string) , 0), "\n";

print round(unformat_number($string2), 0), "\n";

__END__

57042534

3435973837

我说“有点,几乎”的原因是Number :: Format将1K视为等于1024字节,而不是1000字节.这可能就是为什么它会给出一个奇怪的结果(带小数字节),除非它是四舍五入的.

标签:unix,linux,perl

来源: https://codeday.me/bug/20190717/1484607.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值