【发布时间】:2014-10-02 07:33:44
【问题描述】:
我希望根据从 CSV 文件中提取的数据填充几个数组。
现在在我的脚本中,我逐行读取文件并取出我需要的每一列并将其放入单独的数组中(例如,服务器主机名放入 @server 数组,容量信息放入 @容量数组等)
填充数组后,我使用简单的 for 循环将它们打印出来
for (my $i = 0; $i < @server; $i++)
{
#print different arrays by using $i for the key
}
目前这是可行的,因为在我将所有信息存储到数组中的循环中,它是线性完成的,因此每个数组索引都匹配其他数组中的信息。
但是,我现在需要在 @server 数组中按服务器对信息进行排序。我想做的是按字母顺序对@server 数组进行排序,但是让(排序前)匹配的其他数组中的每个索引也得到相同的排序。
我一直在尝试解决这个问题,在散列和多维数组之间进行转换,此外,我对 Perl 还比较陌生,这对我来说变得非常困难。
下面是我用来从 CSV 文件中提取信息的代码。我知道 Text::CSV 模块,但是我无法安装其他模块。
while (my $line = <INFILE>)
{
chomp($line);
if (index($line, "ONSITE") == -1 && index($line, "IBM3584") != -1)
my @separated = split(',', $line);
if ($separated[4] > 0)
{
push (@server, $separated[0]);
push (@slot, $separated[7]);
push (@volume, $separated[1]);
push (@used, $separated[8]);
push (@pool, $separated[3]);
}
}
【问题讨论】:
标签: arrays perl sorting csv indexing