0

以前に変更された STDIN の元のエンコーディングを復元することは可能ですか?

#!/usr/bin/env perl
use warnings;
use strict;

binmode STDIN, ':raw';

# do something here
# ...
# ...

# restore original STDIN encoding
binmode STDIN, $old_encoding;
4

1 に答える 1

1

これが機能するかどうかはわかりませんが、次の:pop疑似エンコーディングがあります。

最上層を削除します。perl コードにレイヤ スタックを操作する方法を提供します。実験的なものと考えるべきです。:pop は実際のレイヤーでのみ機能し、:utf8 のような疑似レイヤーの効果を取り消さないことに注意してください。考えられる使用例は次のとおりです。

open($fh,...)
...
binmode($fh,":encoding(...)");  # next chunk is encoded
...
binmode($fh,":pop");            # back to un-encoded

より洗練された (そしてより安全な) インターフェイスが必要です。

于 2012-05-04T16:35:13.400 に答える