【发布时间】:2012-06-24 15:20:00
【问题描述】:
有人可以解释一下为什么这没有按我的预期工作吗?
zen:~ emx$ echo ABC | perl -nle "print unpack 'H*'"
414243
zen:~ emx$ echo 414243 | perl -nle "print pack 'H*'"
zen:~ emx$
不知何故,我期待第二个命令打印 ABC
【问题讨论】:
有人可以解释一下为什么这没有按我的预期工作吗?
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*', $_" 也不会产生任何结果。
$_ 变量扩展为空。你想要echo 414243 | perl -nle "print pack 'H*', \$_"
echo 414243 | perl -nle 'print pack "H*", $_' 确实很棒。