我开始使用Visual代码,它对语法更正警告非常酷。我曾在Vim的Linux shell下工作了20年。
但是现在我可以看到太多与全局变量相关的错误,比如Global symbol "%contents" requires explicit package name。这很令人不安。
这可能与Visual代码有关,就像某些扩展插件所能做到的那样。
或者它可以通过一些Perl函数来处理,所以它也可以解决经典的"perl -c“外壳检查。
我的处境:
我有Perl脚本fcgi.cgi,从require functions.pl开始,然后使用全局哈希变量将所有页面从文件加载到内存,每个页面被分隔为"html“和"pl”文件(1762个文件,大小为16 20 ),并在20个线程中运行。
在任何Apache调用中,它只调用一个线程,并从内存中对选定的"pl“页面运行"eval”,填充选定的"html",并以极快的速度生成页面,就像在0,1秒内。文件"functions.pl“只有”子“函数,所有"pl”脚本都可以使用它们。
Files:
|/fcgi-bin/fcgi.cgi
|/pages/page1.pl
|/pages/page1.html
|/pages/page2.pl
|/pages/page2.html
|/functions/functions.pl那么,有没有办法向"/pages/page1.pl“和”/function/function s.pl“中添加一些信息,即"/fcgi-bin/fcgi.cgi”是父脚本?所以它将检查语法,就像它在一个文件中一样。
对于“/page/page1.pl”,"/fcgi-bin/fcgi.cgi“是父函数,”/function/function s.pl“是库。
我可以图像,只是为了语法检查,我可以复制这些文件的内容,在检查文件的开头,语法检查将工作。
或者我可以简单地添加一些扩展,例如:
#!/usr/bin/perl
#this is /pages/page1.pl
###extenstion call add for check: "/fcgi-bin/fcgi.cgi"###
###extenstion call add for check: "/functions/functions.pl"###
#normal code, using variables from /fcgi-bin/fcgi.cgi and functions from /functions/functions.pl 我希望这是可以理解的。它与特定的代码无关,这是一个常见的问题,在其他编程语言中也是如此。所以没有示例代码。我希望获得一些特定于Visual的代码解决方案。我想,Perl解决方案只能通过将我20年的工作重新编程到一些“使用Lib包”定义来完成,这是不可能的。
发布于 2022-06-02 20:44:25
听起来你不喜欢你的新环境显示你之前忽略(或看不到)的警告。如果你不想修复这些问题,你可能不想要一个向你展示它们的工具。
停止使用全局变量,这是一个很好的设计决策。如果您必须使用它们,请使用use vars或our声明它们,或者使用完全限定的名称。
但是,你的问题似乎是,你必须在许多棘手的地方这样做。(但是,您有Perl和源代码管理!)
我可能会建议您了解如何在VSCode的“out to perl”中关闭警告,就像使用-X开关一样,但是如果您想要检查语法,这并没有多大帮助。local $^W=0可能会在一些地方有所帮助。
https://stackoverflow.com/questions/72471722
复制相似问题