我想简单地将所有字符都带到行尾,并将它们放在变量中。这是一个可以解释更多的尝试:
open my $in, '<', 'in.txt';
$iteration = 0
while(<$in>){
chomp;
next if /^#|^$/; //Skip over lines starting with # or empty lines.
if($iteration==0) {
die "Error in file formatting!\n" unless /^Data1: [.]*/; //*****
my ($data1) = /Data[1]: ([.]*)/; //*****
$iteration++;
}
else if($iteration==1) {
die "Error in file formatting!\n" unless /^Data2: \d+/;
my ($data2) = /Data[2]: (\d+)/;
$iteration++;
}
else if($iteration==2) {
die "Error in file formatting!\n" unless /^Data3: \d+/;
my ($data3) = /Data[3]: (\d+)/;
$iteration=0;
}
}
在循环内的第一个if语句中,这将在行的开头查找字符串“Data [1]:”,现在我想在此之后获取所有内容,并将其放在变量中。因此,空格,标点符号,数字,下划线等都可以,但是一旦有新行,我想继续循环到我的循环中的下一行,所以停在那里(我想停在行的末尾) )。
答案 0 :(得分:1)
/[.]+/
匹配一个或多个.
。你想要/.*/
,它匹配除换行符之外的任意数量的字符。
my ($data1) = /^Data\[1\]: (.*)/
or die "Syntax error\n";