我对Perl非常陌生。我有一个名为test.txt的文件,以下代码显示了文件中的数据
test count seed
in 5 100
checks 5 100
comb 5 100
reload 5 100
reset 5 100
文件中有3列,分别是测试,计数和种子。首先,我想读取测试名称“ in”,然后再将5和10存储到一个变量中,例如$ test = in,$ count = 5和$ seed = 100,因为我将这些称为将变量保存到另一个文件中,这就是为什么我要存储变量,然后再进行检查,梳理,重新加载和重置的原因。每次都应该调用test,并且必须将其存储到声明的变量中。
我可以读取该文件,但无法执行此操作。最后,我将打印这些值以查看是否存储的值。
最终我的大脑得到了答案,这是代码
while($line=<RD>)
{
if($line=~m/^\#\w+/)
{
}
elsif($line=~m/^\s*\w+/)
{
$line1=$&;
$line1=~s/\s+//g;
#print "$line1\n";
push(@arr,split(" ",$line));
$test_count=$arr[1];
for($i=1;$i<=$test_count;$i=$i+1)
{
print "make $arr[0] $arr[2] $arr[3] $arr[4]\n";
}
$#arr=-1;
}
}
答案 0 :(得分:2)
您说:
我想在那之后将5和10存储到一个变量中 不同的变量,例如$ test = in,$ count = 5和$ seed = 100
我敢打赌这不是你想要的。我敢打赌,将数据存储在复杂的数据结构中将对您有用得多。像这样:
my @data;
my @cols;
# Assuming you've opened the file and stored
# the filehandle in $fh
while (<$fh>) {
# Skip lines without any data
next unless /\S/;
if ($. == 1) {
@cols = split;
next;
}
my %row;
@row{@cols} = split;
push @data, \%row;
}
由于您没有努力尝试解决问题(或者至少没有显示任何努力的证据),所以我不会花时间向您解释我的解决方案。通过阅读perldoc perldsc,您会获得一些有用的信息。