gpt4 book ai didi

linux - 使用文本文件的 Perl 代码

转载 作者:太空狗 更新时间:2023-10-29 11:27:55 26 4
gpt4 key购买 nike

为什么我的 perl 代码没有打印出任何东西?我已经为此工作了一段时间,我正在使用一个文本文件,其中包含大量不同的数据,我的数组中的每个数据都用逗号分隔,这意味着它是一列。

这是我的代码:

#!/usr/bin/perl

open (FILE, 'census2008.txt');

my @SumLevArray;
my @StNameArray;
my @CtyNameArray;
my @PopEstimateArary;
my @BirthsArray;
my @DeathsArray;

$i = 0;
$temp = 0;
$lowestBirthRates = 100000000;
$highestBirthRates = 0;
$size = 0;


while (<FILE>)
{
chomp;
($sumlev, $stname,$ctyname,$popestimate2008,$births2008,$deaths2008) = split(",");
push (@SumLevArray, $sumlev);
push (@StNameArray, $stname);
push (@CtyNameArray, $ctyname);
push (@PopEstimateArary, $popestimate2008);
push (@BirthsArray, $births2008);
push (@DeathsArray, $deaths2008);
}
$size = @BirthsArray;

while ($i < $size)
{
if($SumLevArray[$i] == " 040"){
$temp = $BirthsArray[$i]/$PopEstimateArary[$i]/541;
if(($lowestBirthRates > $temp) &&($temp > 0)){
$lowestBirthRates = $temp;
}
if($highestBirthRates < $temp){
$highestBirthRates = $temp;
}

}
$i = $i + 1;
}

print "\n";

print "Lowest birth rate in LOW-STATE: ";
print $lowestBirthRates;
print " per 541\n";

print "Highest birth rate in HIGH-STATE: ";
print $highestBirthRates;
print " per 541\n";

print "In Washington:\n";

print " Lowest birth rate in LOW-COUNTY County, WA: x.xxx per 541\n";

print " Highest birth rate in HIGH-COUNTY County, WA: x.xxx per 541\n";


close (FILE);
exit

最佳答案

帮助您解决问题的最佳工具是 use strict; use warnings; .请务必将它放在您编写的每个脚本的顶部,因为它将为您节省大量调试琐碎问题的时间。

在这里,有几个 i 缺少它们的 $ 标记。

另外,考虑学习 Perl 数据结构说明书:perldoc perldsc .哈希数组(技术上称为哈希引用)将是一种更具可扩展性的数据结构选择,用于存储您的数据。

关于linux - 使用文本文件的 Perl 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8459550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com