interoception Asked: 2021-07-18 08:43:47 +0800 CST2021-07-18 08:43:47 +0800 CST 2021-07-18 08:43:47 +0800 CST 什么是“1;” vnc.conf 底部的行? 772 我在Ubuntu上配置tigervnc,默认配置文件底部有 1; 这条线的作用是什么? ubuntu vnc 1 个回答 Voted Best Answer user1686 2021-07-18T10:45:48+08:002021-07-18T10:45:48+08:00 在 TigerVNC 的 Debian 包中,该vnc.conf文件实际上是一个 Perl 脚本,由 vncserver(也是一个 Perl 脚本)使用该do()函数加载,相当于 bash 中的 'source' 或 PHP 中的 'include'。 Perl 中的 do() 函数返回脚本中最后一条语句返回的任何值。因此,如果脚本的作者将1;其作为最后一条语句,则对 do() 的调用也将得到 1 的结果。(而如果脚本以$abc = "xyz";then do() 结尾也将返回字符串“xyz”。) Perl模块通常需要这样做,即 .pm 文件通过use或加载到主 Perl 脚本中require- 如果模块以“false”值结束,则会导致错误消息,因此所有 Perl 模块文件都有1;卡在最后以保证正确的结果。 通过 加载的东西不需要它do(),因为 Perl 不会自动检查它的结果,但无论如何作者必须习惯性地添加它。
在 TigerVNC 的 Debian 包中,该
vnc.conf
文件实际上是一个 Perl 脚本,由 vncserver(也是一个 Perl 脚本)使用该do()
函数加载,相当于 bash 中的 'source' 或 PHP 中的 'include'。Perl 中的 do() 函数返回脚本中最后一条语句返回的任何值。因此,如果脚本的作者将
1;
其作为最后一条语句,则对 do() 的调用也将得到 1 的结果。(而如果脚本以$abc = "xyz";
then do() 结尾也将返回字符串“xyz”。)Perl模块通常需要这样做,即 .pm 文件通过
use
或加载到主 Perl 脚本中require
- 如果模块以“false”值结束,则会导致错误消息,因此所有 Perl 模块文件都有1;
卡在最后以保证正确的结果。通过 加载的东西不需要它
do()
,因为 Perl 不会自动检查它的结果,但无论如何作者必须习惯性地添加它。