2017-06-21 38 views
3

我有這樣一個內襯:爲什麼版本不可打印?

perl -Mversion -e 'our $VERSION = v1.02; print $VERSION'

輸出是(這是不可見的,有兩個人物:1,2):

enter image description here

爲什麼模塊版本不可打印?我希望看到v1.02

+0

我得到輸出。這是兩個不可打印的字符。我認爲我是00和11 – simbabque

+0

'v1.02'附近的雙打引號並沒有問題 – Dada

+0

@達達並沒有超過'版本'編譯指南的目的? – simbabque

回答

6

我發現這個DOC

print v9786;    # prints SMILEY, "\x{263a}" 
print v102.111.111;  # prints "foo" 
print 102.111.111;  # same 

回答我的問題:
儘管對v1.02v-string不是字符串內部。而當我們想要打印它時,我們應該做額外的步驟。例如,使用上面建議的模塊version

UPD
我找到了一個解決方案(DOC):

printf "%vd", $VERSION; # prints "1.2" 

UPD

而且this應閱讀:

有進入v兩個途徑 - 字符串:兩個或更多的裸號小數點,或帶有一個或多個小數點和前導'v'字符(也是空白)的裸數。例如:

$vs1 = 1.2.3; # encoded as \1\2\3 
$vs2 = v1.2; # encoded as \1\2