Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Tie::file进行Perl文件操作_Perl_File - Fatal编程技术网

使用Tie::file进行Perl文件操作

使用Tie::file进行Perl文件操作,perl,file,Perl,File,我正在解析一个HTML文件,该文件包含以类似网格的方式关联的数据,即将完成。我以前认为需要删除所有空行,但我没有注意到网格中的某些字段是空的。我现在尝试使用TIA::文件模块将文件存储在一个数组中,迭代它,如果有三个连续的空白行,我想插入一个我可以稍后操纵的哑值,这样空白行剥离不会改变我的数据结构。p> 到目前为止我尝试的内容(文件大小约为2 MB): 编辑:我如何在数组上迭代并插入值,所以每条线之间只有一个空间,这样我就可以在后面除去所有的空行了? 如果我正确理解了您的问题(将三个连续的空行替

我正在解析一个HTML文件,该文件包含以类似网格的方式关联的数据,即将完成。我以前认为需要删除所有空行,但我没有注意到网格中的某些字段是空的。我现在尝试使用TIA::文件模块将文件存储在一个数组中,迭代它,如果有三个连续的空白行,我想插入一个我可以稍后操纵的哑值,这样空白行剥离不会改变我的数据结构。p> 到目前为止我尝试的内容(文件大小约为2 MB):


<>编辑:我如何在数组上迭代并插入值,所以每条线之间只有一个空间,这样我就可以在后面除去所有的空行了? 如果我正确理解了您的问题(将三个连续的空行替换为“null”一词,并在任意一侧替换一个空行),那么对您的文件内容进行操作的以下正则表达式可能会有所帮助:

use Modern::Perl;

my $htmlFile = do { local $/; <DATA> };

$htmlFile =~ s/(?<!\S)\n{3}/\nnull\n\n/g;

say $htmlFile;

__DATA__



A
B






C
D



E
F

Output:

null

A
B

null


null

C
D

null

E
F
使用Modern::Perl;
my$htmlFile=do{local$/;};

$htmlFile=~s/(?如果我正确理解了您的问题(将三个连续的空行替换为“null”一词,并在任意一侧替换一个空行),那么以下对文件内容进行操作的正则表达式可能会有所帮助:

use Modern::Perl;

my $htmlFile = do { local $/; <DATA> };

$htmlFile =~ s/(?<!\S)\n{3}/\nnull\n\n/g;

say $htmlFile;

__DATA__



A
B






C
D



E
F

Output:

null

A
B

null


null

C
D

null

E
F
使用Modern::Perl;
my$htmlFile=do{local$/;};

$htmlFile=~s/(?请发布一些示例输入和所需输出。请发布一些示例输入和所需输出。谢谢你的提示,我想我的逻辑是关闭的。@squiguy:不客气!我不知道你的逻辑是关闭的;上面只提供了一个不同的解决方案。谢谢提示,我想我的逻辑是关闭的。@squiguy:不客气!我不知道I don’我不知道你的逻辑是错的,上面只提供了一个不同的解决方案。