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

如何在Perl中获取Python脚本的函数返回值(无需套接字或文件)

解决方案

要实现Perl获取Python脚本返回的123,且不使用套接字或文件,是可行的,但需要先调整Python脚本的输出逻辑,再通过Perl捕获标准输出:

步骤1:修改Python脚本(run_me.py)

原脚本的main()返回123,但没有将这个值输出到标准输出,所以Perl无法捕获。需要让Python把返回值打印出来:

# run_me.py
def main():
    return 123

if __name__ == '__main__':
    # 将main的返回值打印到标准输出
    print(main())

步骤2:Perl脚本捕获输出

使用Perl的反引号(`)或qx//操作符执行Python脚本并捕获其标准输出,再去除末尾的换行符:

# perl code
my $ret = `python run_me.py`; # 若你的环境默认是python3,替换为`python3 run_me.py`
chomp $ret; # 移除输出末尾的换行符
print "ret = $ret\n"; # 输出:ret = 123

补充说明

  • 若尝试用退出码传递值:可以修改Python脚本用sys.exit(main()),但退出码的范围是0-255,超过这个范围的值会被截断(比如返回300的话,实际退出码是300%256=44),仅适合小数值场景,且退出码通常用于表示脚本执行状态(成功/失败),不是传递业务数据的常规方式。
  • 若不能修改Python脚本:则无法获取到123,因为原脚本既没有输出到标准输出,也没有将该值作为退出码返回(原脚本退出码为0,代表执行成功)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:27:32