【发布时间】:2010-11-01 11:36:43
【问题描述】:
我正在使用 perl 脚本读取文件。该文件由具有不同字符的字符串组成,我应该识别包含字符“X”的字符串。我想知道我应该如何(1) 打印此字符串(包含'X')以及(2) 将此字符串写入另一个文件(3) 计算'X' 的数量整个文件中的字符。下面的脚本再次打印整个文件。有什么建议吗?
#!/use/bin/perl
use strict;
use warnings;
open (FILE, "/home/user/Desktop/infile.phy") || die "cant open file\n";
my @body = <FILE>;
close (FILE);
my $count= 0;
my $string = '';
foreach $_(@body){
if ($_ =~ m/[X]/){
print "$_";
$count++;
print $count;
}
else {
print ;
}
}
exit;
【问题讨论】:
-
我也在想同样的事情,但它很容易成为介绍性文本中的一个示例问题。
-
在某些时候,您需要打开“另一个文件”并确保写入它。另外,尽量避免使用这种形式的“开放”;使用一个返回文件句柄的形式,以便与常规 $variable 一起使用: open($fh, "filename");或其中一种变体。
-
就本练习而言,没有明显的理由将整个文件放入数组中。阅读循环中的每一行会更明智: while ($line = ) { ...check line and print... }
-
@Sinur 不,这不是家庭作业。我是 perl 新手,这是我正在编码的大问题的一小部分。感谢您的回复!
标签: perl file-handling string-matching