如果在之前的讨论中已经回答了这个问题,我对 perl 很陌生,并且很抱歉。我有一个脚本需要在循环外使用声明的变量,但只有一个循环在工作,即使我已经在循环外声明了变量,代码是:
my $sample;
open(IN, 'ls /*_R1_*.gz |');
while (my $sample = <IN>) {
chomp $sample;
print "sample = $sample\n";
my $fastq1="${sample}"; #need to use fastq1 later on hence it's declared here
my $sample2;
open(IN, 'ls /*_R2_*.gz |');
while (my $sample2 = <IN>) {
chomp $sample2;
print "sample2 = $sample2\n";
my $fastq2="${sample2}"; #need to use fastq2 later on hence it's declared here
}
}
Sample2 有效,但 sample1 无效,仅输出第一个样本,然后循环进入 sample2,输出为:
sample =/sample1_R1_001.fastq.gz
sample2 =/sample1_R2_001.fastq.gz
sample2 =/sample2_R2_001.fastq.gz
sample2 =/sample3_R2_001.fastq.gz
ETC..
任何人都可以解决这个问题吗?
谢谢