我是新來的perl和一般的編程,我剛剛發現了正則表達式和替換運算符。爲什麼perl不打印關於翻譯文本的內容?
#!/usr/bin/perl
open(LEET, "leet.txt") or die "Can't open leet.txt: $!\n";
while($line = <LEET>) {
$line =~ s/4/a/gi, s/3/e/gi;
}
print $line;
他爲什麼不打印什麼?我想製作一個leet speak translator,打開一個文本文件並打印出翻譯後的文本。
我把它放在裏面,只打印被寫入文件中的標準文本,並沒有取代所有爲4S和3秒鐘。 – Excquis
也許你的意思是使用's/a/4/gi',從你的問題來看你的翻譯方式還不清楚。另外,你不能以你所展示的方式進行兩次替換。我已經更新了我的答案。 –
啊,我明白了!你是對的,我的意思是s/a/4/gi。謝謝你,先生!您剛剛向我展示了perl中正則表達式的工作原理(我假設正則表達式在語法上相當通用)。 – Excquis