【发布时间】:2010-04-09 16:13:20
【问题描述】:
我试图用 perl 提取一行的一部分
use strict;
use warnings;
# Set path for my.txt and extract datadir
my @myfile = "C:\backups\MySQL\my.txt";
my @datadir = "";
open READMYFILE, @myfile or die "Error, my.txt not found.\n";
while (<READMYFILE>) {
# Read file and extract DataDir path
if (/C:\backups/gi) {
push @datadir, $_;
}
}
# ensure the path was found
print @datadir . " \n";
首先我试图设置 my.txt 文件的位置。接下来我试图阅读它并用正则表达式拉出部分行。我得到的错误是:
通过了无法识别的转义\m 在 1130.pl 第 17 行。
我查看了How can I grab multiple lines after a matching line in Perl? 以了解如何读取文件并匹配其中的一行,但我不能 100% 确定我这样做是正确的还是以最好的方式。我似乎也产生了错误:
错误,找不到 my.txt。
但该文件确实存在于文件夹 C:\backups\MySQL\
【问题讨论】:
-
Unrecognized escape \m 在 1130.pl 第 17 行通过。感谢 Mark Rushakoff 和 user275455 的解决方案,我只需要帮助解决 my.txt 文件未在在这一点上,感谢您说明了不止一种方法。
-
到目前为止,我已经回答了几乎所有我需要的问题,我能够修复前面提到的错误,但是现在我似乎无法从它读取的行中删除 DataDir,我尝试使用“pop " 并以与读取文件相同的方式读取数组,但它还没有工作。