cat -E test1.txt
輸出:Perl的文件句柄 - 覆蓋現有數據,而不是追加/刪除
car$
$
$
我只想改變「車」和「自行車」,並刪除新的/空行。
這是按預期工作:
#!/usr/bin/perl -w
open(FILE1,"<","./test1.txt"); @araj=<FILE1>; close(FILE1);
open(FILE2,">","./test1.txt");
map {
[email protected]@[email protected]; [email protected]^\[email protected]@;
} @araj;
print(FILE2 @araj);
close(FILE2);
和
cat -E test1.txt
輸出爲100對我來說%正確:
但在上述情況下,我用2個開啓/關閉文件。 所以我使用2個文件句柄。
我只想使用1x文件句柄
(這是學習目的,只是想了解+ + + >>正在工作......)。
例如:
#!/usr/bin/perl -w
open(FILE2,"+<","./test1.txt"); #what file handle should be here? +> , +>> >> .... ?
@araj=<FILE2>;
map {
[email protected]@[email protected]; [email protected]^\[email protected]@;
} @araj;
print(FILE2 @araj);
close(FILE2);
輸出不正確:
car$
$
$
bike$
這是爲什麼追加,但沒有覆蓋?當我使用其他文件句柄時,結果也是不正確的,例如空文件... 哪個文件句柄用於讀取和覆蓋?
https://perldoc.perl.org/functions/seek.html –
@ikegami感謝文件。糾正。 – collector1871