【发布时间】:2013-12-28 23:39:29
【问题描述】:
当我尝试将内容写入文件时,文件返回空白。不知道这里发生了什么。我知道正则表达式正在工作。我怀疑问题出在我写文件的方式上。
#!/usr/bin/perl
@files = </home/vnc/Downloads/test/*.json>;
my $myfile;
foreach $file (@files) {
print $file . "\n";
open(IN,'<',$file) or die $!;
while(<IN>) {
$_ =~ s/^(.*?)\[//;
$_ =~ s/\](?=[^.]*$)//;
$myfile = $_;
# print $myfile;
}
close(IN);
open(OT,'>',$file) or die $!;
while(<OT>) {
print(OT $myfile);
}
close(OT);
# $file =~ s/^(.*?)\[//;
}
【问题讨论】:
-
我以前没见过
print(OT $myfile);。标准符号没有括号:print OT $myfile;。你应该使用use strict;和use warnings;来确保你没有犯任何愚蠢的错误。我还建议使用词法文件句柄:open my $in, '<', $file or die "Failed to open $file ($!)";等。 -
别担心,我想通了。
标签: perl file-handling