- 论坛徽章:
- 0
|
5可用积分
现在的问题是有很多的目录和子目录,根据各个目录的名字修改该目录下的文件的相关内容。无法使用perl-p -i -e来修改。
由于一些原因没有find模块,也暂时无法安装。自己写的递归对目录和文件进行的操作,网上找来一个程序修改文件内容
open(FF,"<xxx.txt");
$/="";
$data = <FF>;
$data=~s/abc/123,xxxxx/sg;
close(FF);
open(FF,">;xxx.txt");
print FF $data;
close(FF);
但是出现问题这个方法,无法对文件的内容修改完,我的文件再有#后面的内容就没有被修改,而且之后的不是注释的内容的也无法修改。 |
最佳答案
查看完整内容
简单说说属于外部命令行开关,不能用于perl文件内部,但是内部有相应的写法比如-i.bak对应于这个句子的作用就是perl在执行时会自动替你备份文件,具体过程如下:(以读取test为例)1.perl读test文件,并将其改名为test.bak2.perl接着创建一个文件test,在上面while循环中的print或者write默认都是写入这个文件至于那个while循环的话,则是从做到右依次对@ARGV中的文件进行操作,对于每一个文件都是一行一行读入,读完以后接着读下一 ...
|