我需要了解這個特殊程序的工作,這似乎是相當複雜的,請你看,如果你能幫助我理解這是什麼程序在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