2015-04-12 33 views
1

我想先說我對Perl不熟悉。話雖如此,我遇到了這段代碼,我不知道在下面的代碼中\x是什麼。另外,我不確定爲什麼當我跑到下面是沒有任何顯示: x在打印中做什麼

perl -e 'print "\x7c\x8e\x04\x08"' 

回答

2

\ X代表一個十六進制字符符號的開始。

5

這不是關於打印:它是關於字符串表示法,其中代碼表示字符集中的字符。欲瞭解更多信息,您應該閱讀Quote and Quote-like OperatorsEffects of Character Semantics

在你的情況下,字符代碼是十六進制。你應該看看你的字符集表,你可能需要先轉換爲十進制。

3

你說:「我不確定爲什麼沒有任何顯示,當我跑了以下內容:」

perl -e 'print "\x7c\x8e\x04\x08"' 

該命令輸出的4個字符到stdout。每個字符都以十六進制指定。 「\ x7c」部分將輸出vertical bar character|。其他三個字符是控制字符,因此可能不會產生任何可見的輸出。如果你將輸出重定向到一個文件,你最終會得到一個4字節的文件。

您可能看不到垂直條字符,因爲它被命令提示符覆蓋。與shell echo或Python的print不同,Perl的print函數不會自動將新行添加到所有輸出。如果您想要換行,可以使用\n將它們插入字符串中。