无法安装 perl 模块 Crypt::TEA

Can`t install perl module Crypt::TEA

当我尝试在 Windows 7 上将 Crypt::TEA 模块安装到 perl 5.18 时,显示错误:

TEA.xs: In function 'XS_Crypt__TEA_crypt': TEA.xs:58:9: error: invalid use of void expression

问题是this line:

    if (SvREADONLY(output) || !SvUPGRADE(output, SVt_PV))
        croak("cannot use output as lvalue");

SvUPGRADE() 是一个有两个无效操作的宏,它没有 return 一个值。如果它失败了,它会吱吱作响。改成这样:

    if (!SvREADONLY(output)) 
        SvUPGRADE(output, SVt_PV);