最近玩Perl,
VsCode Perl Perl debug
当前时间2024.06.03
下载了VsCode,装了Perl 插件,(我这个时间节点已经没有Perl debug这个插件了,好像跟Perl融合了.)
Perl版本
strawberry-perl-5.38.2.2-64bit
strawberry-perl-5.36.3.1-64bit
一直报这个错
Can't locate Perl/LanguageServer.pm in @INC (you may need to install the Perl::LanguageServer module) (@INC entries checked: D:/ProgramFiles/strawberry/perl/site/lib/MSWin32-x64-multi-thread D:/ProgramFiles/strawberry/perl/site/lib D:/ProgramFiles/strawberry/perl/vendor/lib D:/ProgramFiles/strawberry/perl/lib).
LZ执行如下命令后
cpan Perl::LanguageServer
到最后,就会有各种 Test 失败
IO::AIO
AnyEvent
AnyEvent::BDB
AnyEvent::IO::IOAIO
Coro
各种查资料,问小机器人
总结问题原因
就是因为Perl版本太高,依赖的某些模块不兼容,他就一直报这个错
降Perl版本至strawberry-perl-5.22.3.1-64bit.msi
先执行Perl::LanguageServer
提前需要依赖的一些模块,就是上面Test失败提到的那些.不行了就强制安装执行,下面是会遇到的命令
cpanm AnyEvent --force #强制安装这个的
cpanm IO::AIO
cpanm AnyEvent::IO::IOAIO
perldoc -l App::cpanminus #查看是否安装这个模块
cpanm Coro
cpanm Perl::LanguageServer #Perl/LanguageServer.pm in @INC
LZ本地讲了版本后在安装Perl::LanguageServer
后
在VSCode的里执行Perl就可以查看到变量了.
以下是测试用到的代码片段
#!/usr/bin/perl
@hits = (25, 30, 40);
@names = ("google", "runoob", "taobao");
print "\$hits[0] = $hits[0]\n";
print "\$hits[1] = $hits[1]\n";
print "\$hits[2] = $hits[2]\n";
print "\$names[0] = $names[0]\n";
print "\$names[1] = $names[1]\n";
print "\$names[2] = $names[2]\n";
my $cnt=0;
for (my$i=0;$i<@names;$i++){
$cnt=$cnt + 1;
print $i;
}