包是命名空间.Module是一个包含Perl代码的文件.cpan并且cpanm很可能是包管理器.我什么时候cpanm XML::LibXML安装到底是什么?
我有以下包/文件结构:第一个:
# package1
package Package1;
use strict;
use warnings;
my @array = (1, 2, 3, 4);
return 1;
Run Code Online (Sandbox Code Playgroud)
第二个:
use strict;
use warnings;
use package1;
foreach $a (@array)
{
print $a;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我有以下错误:
全局符号"@array"需要Package1.pm中的显式包名称
我试图定义@array为our,但它没有帮助.我也不能将它定义为公正@array,因为strict.
有没有合法的方法来制作全局变量strict?
我有一个perl tk例程,从导入的perl模块调用一个过程.GUI正在执行子程序时挂起.这是我正在使用的代码摘录.有人可以建议一个更好的方法来执行此操作,以便在程序运行时GUI处于活动状态吗?
use Tk;
use package1;
$mw = MainWindow->new;
$mw->geometry("+10+10");
$mw->title("My notebook GUI");
my $mwFrame = $mw->Frame(-borderwidth => 2, -relief => 'ridge')->pack(-fill=> 'none',-fil=> 'x');
my $nb = $mwFrame->NoteBook(-dynamicgeometry => 'true',-ipadx => 20, -ipady => 20)->pack(-expand => 1,-fill => 'both');
$page1 = $nb->add( 'Page1', -label => 'Page 1' );
$page2 = $nb->add( 'Page2', -label => 'Page 2' );
$page1->pack();
$page2->pack();
$button1 = $page1->Button(-text => "Not Selected", -background => 'gray', -state => 'disabled')->pack(-side => 'right', -expand => 0);
$button2 = $page2->Button(-text => …Run Code Online (Sandbox Code Playgroud) 我刚刚使用"如何安装.pm运行perl脚本"问题中描述的说明在我的系统中安装了软件包
现在,我正在尝试运行Perl脚本但是我仍然看到以下错误:
Win32::OLE operating in debugging mode: _Unique => 1
at C:/Dwimperl/perl/site/lib/Win32/OLE/Lite.pm line 30
require Win32/OLE/Lite.pm called at C:/Dwimperl/perl/site/lib/Win32/OLE.pm line 48
require Win32/OLE.pm called at C:\Users\c_desaik\Desktop\pwrdb\offtarget\pwrdb.pl line 37
main::BEGIN() called at C:/Dwimperl/perl/site/lib/Win32/OLE/Lite.pm line 0
eval {...} called at C:/Dwimperl/perl/site/lib/Win32/OLE/Lite.pm line 0
main::(C:\Users\c_desaik\Desktop\pwrdb\offtarget\pwrdb.pl:53):
53: my $prod_id = "QPSTAtmnServer.Application";
DB<1>
Run Code Online (Sandbox Code Playgroud)
我实际上可以在该位置看到OLE.PM文件,C:/Dwimperl/perl/site/lib/Win32/OLE但它仍然抛出错误.
我没有复制模块,我使用CPAN安装它.
我很困惑,因为有两个地方我看到一个OLE文件夹
C:\strawberry\perl\site\libC:/Dwimperl/perl/site/lib/Win32/OLE通常,当我安装某些东西时,它只有一个根目录.我不确定为什么Perl是由其中两个操作的.