2
有人可以解釋爲什麼這不工作,因爲我期望它?Perl包,解壓縮和STDIN
zen:~ emx$ echo ABC | perl -nle "print unpack 'H*'"
414243
zen:~ emx$ echo 414243 | perl -nle "print pack 'H*'"
zen:~ emx$
不知怎的,我期待第二個命令打印ABC
有人可以解釋爲什麼這不工作,因爲我期望它?Perl包,解壓縮和STDIN
zen:~ emx$ echo ABC | perl -nle "print unpack 'H*'"
414243
zen:~ emx$ echo 414243 | perl -nle "print pack 'H*'"
zen:~ emx$
不知怎的,我期待第二個命令打印ABC
unpack()
默認使用$_
,如果你不提供第二個參數提供它; pack()
on the other hand, does not。
但是'echo 414243 | perl -nle「print pack'H *',$ _」'也不會產生任何結果。 – emx
這將是因爲你的shell在'perl'有任何機會看到它之前將'$ _'變量擴展爲空。你想'回聲414243 | perl -nle「print pack'H *',\ $ _」' – lanzz
這個初學者的錯誤!感謝您指出。 '回聲414243 | perl-nle'打印包'H *「,$ _''確實很棒。 – emx