文本文件中的Perl替换字符串

时间:2014-07-07 22:50:09

标签: perl text-files substitution

我在Windows上使用Strawberry Perl并且遇到了在文本文件中替换字符串的问题。这是文件中数据的示例:

>CR:8A 55 
CT:98 2
*CT:87 1
CR:98 88 
CT:99 0 
CT:80 80
+CT:87 5

我正在尝试替换例如:CR与Testing_Sub和80与NormalTest。到目前为止,我无法理解为什么我所拥有的不适合我:

    print "Enter filename (include .txt):";
    chomp($fname = <STDIN>); # save file name in variable $fname

    # Open a file.  If unsuccessful, print an error message and quit.

    open (FPTR,$fname) || die "Can't Open File: $fname.txt\n";

    @filestuff = <FPTR>;  #Read the file into an array
    print "The number of lines in this file: ",$#filestuff + 1,"\n";
    #print @filestuff;

    open FILE, "+>>", $workfile or die $!; 

    @filestuf = $workfile;  #Read the file into an array

    print "The number of lines in this file: ",$#filestuf + 1,"\n";

    $line =~ s/^A_B_([^C])/X_Y_$1/;

这会立即关闭Perl终端。我尝试过这样的事情:

my $t =~ s/^\.\///;

看看我是否可以将./test替换为我的文件中的test并且也没有用。

有什么建议吗?我不理解Perl的重要内容吗?

任何有用的提示都会很棒。

DM

修改

use strictuse warnings无效的原因是因为我试图直接从文件而不是命令行执行perl程序。我现在收到的错误是:

- “my”变量$ workfile屏蔽同一范围内的早期声明

- 全局符号“$ fname”需要显式包名。

0 个答案:

没有答案