デフォルトでは、perlは\ r \ nをwin32環境で印刷します。これをどのように無効にすることができますか?私はperlを使ってリポジトリのいくつかのソースコードを変更していますが、改行文字をすべて変更したくありません。Win32上のPerlでunix改行だけを印刷するにはどうしたらいいですか?
私は出力レコードの区切り文字を変更しようとしましたが運がありませんでした。
ありがとうございます!
編集:はコードサンプルが含まれるように募集 - 私は、検索をやっていると、このような比較的簡単なパターンに従ってくださいいくつかのファイルの上に置き換える:
#!/usr/bin/perl
# test.pl
use strict;
use warnings;
$/ = undef;
$\ = "\n";
$^I=".old~";
while (<>) {
while (s/hello/world/) {
}
print;
}
をこれはハロー」のすべてのインスタンスを置き換える必要があります"cmd"行に渡されたファイルに対して "world"を指定します。
編集2:私は運当初ずに提案されているようbinmode
を試してみました。私は少し掘り下げて、(インプレース編集の特別な変数)がbinmode
を無効にしていたことを発見しました。インプレイス編集を使用できるようにするにはどうすればよいですか?
編集3:シナンは、以下の指摘するように、私は私の例では$^I
代わりのbinmode STDOUT
でbinmode ARGVOUT
を使用する必要がありました。ありがとう。
出力レコード区切り文字を変更した場合は、これが唯一のことでした。私はいくつかの間違いを犯したのではないかと思います。 –
'\ r \ n'を表示したくないコードの例を挙げることができますか? – Ether
@シーナン、なぜあなたは私が不本意だと思うだろうか?私は不本意ではない。私は簡単なスクリプトを用意していません。私は非常に長くて複雑なスクリプトを持っていて、おそらくそれほど意味をなさないでしょうし、さらに混乱するでしょう。私は今晩後で短縮版を作ることができます。私は関連する部分を含めていると思った。私は現時点で編集が適切だったことを知らなかった。どうも。 –