我想在文本文件的每一行的开头找到一个字符串 STRING
。到目前为止,我有:
open(FILEHANDLE,“sample.txt”)

 while(my $ line =< $ FILEHANDLE>){
 if($ line = ~PATTERN){
 doSomething的();
 }
}



 我的问题是:我为 PATTERN
做了什么让我的代码工作?我知道 STRING
将位于文本文件的每一行的开头, STRING
后面将跟有空格。 STRING
可能会改变,因此它必须在变量中而不是硬编码。
到目前为止,我只能想到Python的方法这个:


 PATTERN = r“^”+ re.escape(STRING)+ r“\ s”
如果是re.search(PATTERN,线):
 doSomething();



 如何将其翻译为Perl?


另外,如果这是错误的Perl语法,请告诉我,以便我可以解决它。

答案 0 :(得分:4)
你几乎就在那里,只需要知道mem
是字符串连接,而不是.
。并且quotemeta()会进行字符串转义。
+
答案 1 :(得分:1)
您正在寻找的是quotemeta
data = dset['sea_ice_cover'][:] # data is a numpy array
data[data < 0] = -1