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