這是一個問題不知道在哪裏解決perl的基本
寫Perl程序來完成每個上的文件solar.txt以下的(見類網頁鏈接)
打印所有不在第八欄中列出發現者的記錄。
擦除第二個字段後打印每條記錄。注意:最好是說「打印每個記錄」省略第二個字段。
打印負軌道週期衛星的記錄。 (負軌道週期僅表示衛星沿逆時針方向旋轉。)
打印由Voyager2空間探測器發現的對象的數據。
打印每個記錄的軌道週期以秒爲單位給出,而不是天。
關於solar.txt文件:
此文件包含的9個項目,第一個是線:
Adrastea XV Jupiter 129000 0.30 0.00 0.00 Jewitt 1979
按字母順序由行星或月球的名稱(第一場)。
[]中的文本是上述行中的對應字段。
在此文件中的字段包括:
行星或月亮的名稱[木衛十五]
月亮或行星(羅馬數字)〔XV〕的
名稱數[Jupiter]
軌道半徑(半長軸)以公里爲單位[129000]
軌道週期在天[0.30]
度[0.00]
軌道偏心[0.00]
發現者[傑威]
年份的軌道傾角發現[1979]
我的代碼是
#!/usr/bin/perl
use warnings;
open(FILE, "<solar.txt") or die "Can't open file, $!";
while(<FILE>) {
my $tmp = split(/ /, $file);
if($tmp[7] eq '-') {
print "@tmp";
}
}
while(<FILE>) {
splice(/ /, 1, 1);
print "FILE\n";
}
while(<FILE>) {
my @tmp = split(/ /, FILE);
if($tmp[4] < 0) {
print "@tmp\n";
}
}
while(<FILE>) {
my @tmp = split(/ /, FILE);
if($tmp[7] eq 'Voyager2') {
print "@tmp\n";
}
}
while(<FILE>) {
my @tmp = split(/ /, FILE);
@tmp = $tmp[4] * 24 * 60 * 60;
print "$tmp\n";
}
close(FILE);
,當我嘗試運行它,它說,使用未初始化值的誤差。 但我不知道在哪裏修復。請幫幫我。
你需要'使用嚴格的;'你的文件 – KeepCalmAndCarryOn 2015-04-01 20:37:13
頂部我試過一個,但新的錯誤出現,說裸字「文件」時不允許使用「嚴格的潛艇「在使用...... – 2015-04-01 20:42:23
我使用DWIM Perl 5.14.2.1(v7)這一個。 – 2015-04-01 20:56:25