我有一個相當基本的問題。perl通過駱駝書中的代碼示例創建字符
我正在閱讀駱駝書第6版。第2章中的標量數據一個例子的代碼是這樣的:
$alef = chr (0x05d0);
我試圖打印使用以下但它印刷空白行。
#! /usr/bin/perl
use warnings;
use utf8;
binmode(STDOUT, ":utf8");
#use open qw/:std :utf8/;
$alef = chr(0x05D0);
print $alef;
$alpha = chr(hex('03B1'));
print $alpha;
$omega = chr(0x03C9);
print $omega;
然後我檢查了文檔的UTF-8,而沒有一個05D0,有005D,這會給我一個右方括號「]」。
我的問題是這樣的:有沒有我錯過了導致空行的東西,或者它只是發佈者/作者的一部分?
和阿爾法和歐米茄的作品發現,如果它不是阿列夫。 :)
感謝 戴維
當我運行此代碼(在Linux和OS X上)時,我得到了希伯來語alef(א),alpha(α)和omega(ω)。但是,如果在每個打印語句之後放置'\ n',它的效果會更好。也許這與你的平臺有關。 – mttrb
我在Windows 7上運行cygwin,也許你是對的 –
當談到Unicode的東西時,Windows控制檯上的Perl被認爲是非常麻煩的(不幸的是它很難得到正確的結果)。 Alef的05D0是正確的。你應該寫一個文件而不是控制檯來做任何與unicode相關的練習。 – hobbs