我在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 strict
和use warnings
无效的原因是因为我试图直接从文件而不是命令行执行perl程序。我现在收到的错误是:
- “my”变量$ workfile屏蔽同一范围内的早期声明
- 全局符号“$ fname”需要显式包名。