You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Perl脚本打印$*报“$* is no longer supported”错误求助

解决Perl中输出$*时的致命错误问题

问题原因

你在双引号包裹的字符串里写了$*,Perl会将其识别为已废弃的特殊变量(Perl 5.10及以后版本完全移除了对$*的支持,直接使用会触发致命错误),但你的需求只是输出$*这两个字符,而非调用这个废弃变量。

解决方法

以下几种方式都能让你正常输出$*:

  1. 反斜杠转义$符号
    在双引号中,给$加反斜杠,让Perl把它当作普通字符处理,保留*原样:
print OUT4 "\texec su -c $0 \$*\n\techo \"exec failed!\";
  1. 混合单双引号拼接
    把需要原样输出的$*用单引号包裹(单引号内的内容不会被Perl解析),同时保留$0的变量解析:
print OUT4 "\texec su -c $0 '$*'\n\techo \"exec failed!\";

或者拆分字符串拼接:

print OUT4 "\texec su -c $0 ", '$*', "\n\techo \"exec failed!\";
  1. 使用qq自定义分隔符(可选)
    如果字符串里引号太多,也可以用qq运算符自定义分隔符,同时转义$:
print OUT4 qq{\texec su -c $0 \$*\n\techo "exec failed!";}

内容的提问来源于stack exchange,提问作者Eric Eberhard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 11:48:07