【发布时间】:2014-10-27 22:26:17
【问题描述】:
我有以下 Perl 语言代码:
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my $DF = "/usr/bin/df -Pk"; # HP-UX
my @temp = split /\n/, `$DF`;
shift @temp;
print Dumper \@temp;
输出如下(为了更好的可读性而更短):
$VAR1 = [
'/dev/vg00/lvol6 114224 46304 67920 41% /home',
'/dev/vg00/lvol7 8340704 4336752 4003952 52% /opt',
'/dev/vg00/lvol4 520952 35080 485872 7% /tmp',
];
我想将@temp 数组(或创建一个新数组)转换为多维(数组数组),如下所示:
$VAR1 = [
['/dev/vg00/lvol6', 114224, 46304, 67920, '41%', '/home'],
['/dev/vg00/lvol7', 8340704, 4336752, 4003952, '52%', '/opt'],
['/dev/vg00/lvol4', 520952, 35080, 485872, '7%', '/tmp'],
];
有人帮忙吗?提前致谢! :)
【问题讨论】:
-
如果您使用数组进行反引号捕获,则可以跳过换行符的拆分:
my @DF = `/usr/bin/df -Pk -
也可以替代使用反引号:perlmonks.org/?node_id=177225
-
@TLP:感谢您的信息!但是为了避免这种
Can't locate Filesys/DiskSpace.pm in @INC和Filesys::Df模块需要编译我依赖系统df命令。 -
据我所知,cpan 工具负责模块的编译和安装。你用过 cpan 工具吗?
-
@TLP:是的,但我无权访问 HP-UX 编译器。 :-/
标签: arrays perl multidimensional-array