2014-01-27 48 views
0

我需要用一個字符串替換一個文本文件中的一個整行。我在代碼中的嘗試如下,但我什麼都沒有得到。有什麼遺漏?使用Perl替換一個字符串整行

my @a; 
$ldir= "/project/"; 
$RESULTS_FILE = $ldir.'/'.'out.html'; 
open OUT, "<", $RESULTS_FILE or die "Could not open results file:$!"; 
     while ($ln=<OUT>) 
     { 
       chomp($ln); 
       for my $str (@stream_name) 
       { 
         if ($ln =~ m/$str/) 
         { 
           $str =~ s/(.)/$1: NOT-RUN/g; 

         } 
       } 
       push @a, $str; 
       #push @a, $ln; 
     } 
     open F, ">results.html" || die "$!"; 
     print "\n\n\nContents of Array is:@a\n\n\n"; 
     for my $e (@a) 
     { 
       print F "$e\n"; 
     } 
     close F; 
+0

「@ stream_name」是如何設置的?不要遺漏代碼的重要部分! –

+0

提供與之一起使用的示例數據。 – slayedbylucifer

+0

這裏是數據:

<字體顏色=藍色>流:
============================ =========================
dif6.ts:<字體顏色=綠色> PASS


<字體顏色= blue> A Streams:
======================================== =============
O-6.wma: PASS
============================================== =======
te_2.wma: PASS
========================= ============================
===================== ======
Sharath

回答

0

這條線:

push @a, $str; 

是對for循環之外。你應該真的use strict,以便這些錯誤被抓住,你不必這麼努力。

+0

沒有它的不工作。放入for循環後,我只得到要打印的最後一行。 – Sharath

+0

請包含完全可運行的代碼,否則我們只是抓住吸管,可能會在這裏來回一段時間。 – bluefeet