当我尝试在Windows 7上将Crypt::TEA模块安装到perl 5.18时,显示错误:
TEA.xs:在函数'xs_Crypt__TEA_Crypt'中:TEA.xs:58:9:错误:无效使用void表达式
问题是这一行:
if (SvREADONLY(output) || !SvUPGRADE(output, SVt_PV))
croak("cannot use output as lvalue");
SvUPGRADE()是一个有两个void操作的宏,它不返回值。如果失败了,它会发出嘎嘎声。更改为:
if (!SvREADONLY(output))
SvUPGRADE(output, SVt_PV);