我需要了解这个特殊程序的工作,这似乎是相当复杂的,请你看,如果你能帮助我理解这是什么程序在Perl呢,我是初学者,所以我几乎无法理解在下面的链接给出的代码中发生了什么,任何类型的指导或见解这个程序是高度赞赏。谢谢... :) 这个计划被称为premove.pl.cPerl程序 - 动态启动代码
多一个程序premove.pl有关它, 其代码如下所示:
#!perl
open (newdata,">newdata.txt")
|| die("cant create new file\n");#create passwd file
$linedata = "";
while($line=<>){
chomp($line);
#chop($line);
print newdata $line."\n";
}
close(newdata);
close(olddata);
__END__
我甚至不知道如何运行这里提到两个程序。我也想知道第一个程序的扩展是什么意思,因为它有“pl.c”的扩展名,请告诉我,如果你知道它可能意味着什么。我需要尽快了解它,为什么我要发布这个问题,我还有一些其他的时间,我会尽力弄清楚自己,这对于像我这样的初学者来说似乎是一个复杂的程序,希望你能理解。再次感谢您的时间。
嗨.. :)谢谢你的回答。代码premove.pl,是不是只是从任何文本中删除新的行字符(如'\ r'),并附加新生成的文本,即新数据与'\ n'?在您修改程序的版本中,我看不到任何使用的“chomp”关键字,您是否删除了它?它看起来像是用原来的文件中的'\ n'替代了新的行字符(比如说早些时候它是'\ r')并将其附加到newdata.txt中。我对我发布的计划的解释是否正确? – boddhisattva 2010-03-19 10:59:06
@mgj,我删除了'chomp',因为它是多余的。'chomp'在一个字符串的末尾删除一个出现的全局'$ /'(如果你使用英文''也就是'$ INPUT_RECORD_SEPARATOR'),默认为'\ n'。由于原始代码扼杀了行,然后在末尾连接了一个'\ n'并打印出来,所以它没有做任何事情。请注意,我不打印'$ line' - 我不删除'\ n',所以我不必将其添加回去。 'chomp'对'\ r'字符没有影响,除非'$ /'设置为'\ r'。 – daotoad 2010-03-19 17:25:24
K .. :)感谢您的回答daotoad,它看起来像代码没有做任何事情,但如果我给在该字符串的末尾有\ r的ip文件,那么它就是这样的情况,它chmops \ r并代之以\ n的权利,那么我认为chomp不再是多余的......正确的......? – boddhisattva 2010-03-20 02:30:31