標準 IO

可以使用 binmode 為每個控制代碼單獨設定用於標準 I / O 檔案控制代碼(STDINSTDOUTSTDERR)的編碼

binmode STDIN, ':encoding(utf-8)';
binmode STDOUT, ':utf8';
binmode STDERR, ':utf8';

注意:閱讀時,通常更喜歡:encoding(utf-8) 而不是:utf8,請參閱備註以獲取更多資訊。

或者,你可以使用 open pragma。

# Setup such that all subsequently opened input streams will use ':encoding(utf-8)'
# and all subsequently opened output streams will use ':utf8'
# by default
use open (IN => ':encoding(utf-8)', OUT => ':utf8');
# Make the (already opened) standard file handles inherit the setting 
# given by the IO settings for the open pragma
use open ( :std );
# Now, STDIN has been converted to ':encoding(utf-8)', and 
# STDOUT and STDERR have ':utf8'

或者,要設定所有檔案控制代碼(包括尚未開啟的檔案控制代碼以及標準檔案控制代碼)以使用:encoding(utf-8)

use open qw( :encoding(utf-8) :std );