我有一个包含文件大小的变量:
my $tx = "41.4 MB";
或
my $tx = "34.4 GB";
如何将其转换为KB值。因此,如果tx包含MB然后是* 1024,如果tx包含GB,那么* 1024 * 1024?
答案 0 :(得分:2)
您需要分离并测试单位。
use strict;
use warnings;
sub size_to_kb {
my $size = shift;
my ($num, $units) = split ' ', $size;
if ($units eq 'MB') {
$num *= 1024;
} elsif ($units eq 'GB') {
$num *= 1024 ** 2;
} elsif ($units ne 'KB') {
die "Unrecognized units: $units"
}
return "$num KB";
}
print size_to_kb("41.4 MB"), "\n";
print size_to_kb("34.4 GB"), "\n";
输出:
42393.6 KB
36071014.4 KB
< /手持>