【发布时间】:2015-08-18 15:02:25
【问题描述】:
我查看了几个链接和其他问题以尝试找到解决方案,但我仍然无法打开我要打开的文件。这是我无法运行的代码块:
$filename = "Related Traits: Chromosome 1";
open ($output1, ">", "gwasfiles4/$filename".".txt");
$length1 = scalar(@chr1);
if ($length1 > 1) {
@chr1 = sort {$a <=> $b} @chr1;
for ($x = 0; $x <= $length1; $x++){
for ($y = $x + 1; $y <= $length1 - 1; $y++){
if (abs($chr1[$x] - $chr1[$y]) < 500000){
print $output1 "$chr1[$x]\t$chr1[$y]\n";
}
}
}
}
当我运行它时,我得到了错误:
print() on closed filehandle $output at file.pl line 94
为什么文件打不开?
文件现在打开,但为空:
my @chr1;
my $filename = "Related_Traits_Chromosome_1_$ARGV[0]";
open (my $output1, '>', "gwasfiles4/$filename") or die $!;
my $length1 = scalar(@chr1);
if ($length1 > 1) {
@chr1 = sort {$a <=> $b} @chr1;
for (my $x = 0; $x <= $length1; $x++){
for (my $y = $x + 1; $y <= $length1 - 1; $y++){
if (abs($chr1[$x] - $chr1[$y]) < 500000){
print $output1 "$chr1[$x]\t$chr1[$y]\n";
}
}
}
}
【问题讨论】:
-
use autodie; use diagnostics; -
我会把它放在哪里?
-
open my $output1, ">", "gwasfiles4/$filename.txt" or die $!;。此外,将use strict;和use warnings;放在脚本的顶部,并修复它们产生的任何错误/警告。 -
尝试自己的事情比问要花更少的时间。
-
您显示的代码不会生成该警告。请在第 94 行显示代码,其中应包含
print $output(警告中提到的文件句柄),而不是print $output1(完全不同的文件句柄)。