bio_gzd wrote:
> OH YEAH.总算是搞定了.贴上代码.
>     chop $new_tid=<STDIN>;
>     my @FILE = undef;
>     open FH, $_tid_file or die "文件打开错误,请检查!!";
>     @FILE = <FH>;
>     close (FH);
>     open WRTIDFILE,'>', $_tid_file  or die "文件打开错误,请检查!!";
>     foreach (@FILE) {
>     s/^(TerminalID)\=(\d{8})/$1=$new_tid/g ;
>     print WRTIDFILE ;
>       }
>       close (WRTIDFILE);
>    }
>
> 用foreach来遍历一遍整个数组,之后直接写入句柄,关闭..就这样简单..
>
> On 10月17日, 下午9时00分, bio_gzd <tmfc...@gmail.com> wrote:
>   
>> 分开写..试了一下,不行.难道我写错了?有很大可能啊..
>>     my @FILE = open FH, $_tid_file or die "文件打开错误,请检查!!";
>>     close (FH);
>>     open WRTIDFILE,'>', $_tid_file  or die "文件打开错误,请检查!!";
>>     while (@FILE) {
>>     s/^(TerminalID)\=(\d{8})/$1=$new_tid/g ;
>>     print WRTIDFILE ;
>>       }
>>       close (WRTIDFILE);
>>
>> On 10月17日, 上午11时27分, bio_gzd <tmfc...@gmail.com> wrote:
>>
>>     
>>> 分开写?试过,但是之前的读没关闭,少了这一步.一会试试..
>>>       
>>> On 10月17日, 上午8时32分, silent <silent2...@gmail.com> wrote:
>>>       
>>>> 额... 你是想改写文件的内容, 那么一边读一边写一个文件句柄恐怕不可以
>>>> 用两个吧,
>>>> 1种方法是先全读出来放倒变量里, 再关闭文件, 从新以写打开,在把替换过的内容写进去
>>>> 或者用林时候文件,最后在改名字覆盖
>>>>         
>>>> 2009/10/17 silent <silent2...@gmail.com>:
>>>>         
>>>>> while (<TIDFILE>) {  是表示读的意思
>>>>> 写入的方法是 print TIDFILE $xxstring
>>>>>           
>>>>> 加油!
>>>>>           
>>>>> 2009/10/17 bio_gzd <tmfc...@gmail.com>:
>>>>>           
>>>>>> 有以下程序段,各位看看有错误没?是一个用正则改写文件内容的
>>>>>>             
>>>>>> unless ($new_tid =~ m/^\d{8,8}[^\w]/) {
>>>>>>  print "输入错误或为空行";
>>>>>>  } else {
>>>>>>    chop $new_tid;
>>>>>>    open TIDFILE, ">$_tid_file" or die "文件打开错误,请检查!!";
>>>>>>    while (<TIDFILE>) {
>>>>>>      s/^(TID)\=(\d{8})/$1=$new_tid/g ;
>>>>>>      print ;
>>>>>>      close (TIDFILE);
>>>>>> }
>>>>>>             
>>>>>> 看看有错没?总是无法写入,如果TIDFILE里面不设置重定向符,直接print输出结果证明替换是正确的,但是一旦要写入到TIDFILE里面要么
>>>>>> 出错,要么就是0字节.问题出在哪里?麻烦各位指点一下了.
>>>>>>             
-- 
Perl乐事 -- http://www.perlersh.org
我的博客 -- http://www.perlersh.org/blog.html
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---
没有评论:
发表评论