本文和大家重点学习一下如何配置Eclipse支持Perl脚本开发,EPIC(EclipsePerlIntegration)是一个基于Eclipse平台的开源Perl集成开发环境。其支持的功能有语法高亮、语法检查、代码提示、Perldoc支持、模版、Perl调试器和正则表达式插件等。
浅谈配置Eclipse支持Perl脚本开发
本文将介绍如何配置Eclipse支持Perl脚本开发,这里推荐大家以核心Perl发布的惯例形式来组织你的工程。
1Installation
EPIC(EclipsePerlIntegration)是一个基于Eclipse平台的开源Perl集成开发环境。其支持的功能有语法高亮、语法检查、代码提示、Perldoc支持、模版、Perl调试器和正则表达式插件等。
在安装EPIC之前需要安装Eclipse3.1以上版本,此外还需要安装Perl解释器(Unix和Linux平台通常会缺省安装Perl,Windows平台上可以安装ActivePerl,下载地址www.activestate.com)。
可以通过EclipseUpdateManager来安装EPIC。选择菜单Help->SoftwareandUpdates->FindandInstall,在弹出的Install/Update对话框中选择Searchfornewfeaturestoinstall然后单击下一步,在弹出的Install对话框中单击NewRemoteSite,在弹出的对话框中输入Name(例如EPIC)和URL(http://e-p-i-c.sf.net/updates)然后单击确定。接下来在Install对话框中选中刚才新建的Site,单击完成。按照向导的指示完成后续的过程,忽略途中提示的未经签名的警告。重启Eclipse后,EPIC应该已经安装完毕了。
如果要暂时禁用或者卸载EPIC,选择菜单Help->SoftwareandUpdates->ManageConfiguration,展开弹出对话框左侧的树控件,选中当前版本的EPIC并单击右键,在弹出菜单中选择禁用或者卸载。
2SettingUpPreferences
选择菜单Window->Preferences,在弹出的Preferences对话框左侧的树控件中选择PerlEPIC以打开PerlEPICGeneralPreferences页。这个页中包含了Perl解释器的路径、解释器的类型以及其他选项等。
关于解释器的类型,除了standard之外,还可以选择Cygwin。如果选择Cygwin,那么@INC数组的内容会有所变化。至于@INC数组,当使用useModuleName来装载模块时,Perl会在@INC数组中列出的每一个目录中查找模块。因为use是在编译时装载模块,所以任何对@INC的修改都需要在编译时发生。可以通过BEGIN块在编译时向@INC中添加值,例如BEGIN{push@INC,‘/path’}。@INC通常包含(假设Perl安装在/perl):/perl/lib/perl/site/lib.。核心模块是安装在”perl/lib”目录中,非核心模块安装在”perl/site/lib”目录中,”.”这个目录表示当前的工作目录。在Eclipse中选中Perl工程,选择Project->Properties,在弹出的对话框中选择PerlIncludePath,然后就可以向@INC中添加项目。如果没有指定绝对路径,那么这个路径是相对于工程目录的。可以使用标准的Eclipse变量,例如${project_loc}。
关于调试器相关的设置有以下两个:
◆Enabledebuggerconsole。这个选择只是在你希望调试EPIC自身的时候有用,在其它情况下不要使用。在调试的时候,一个特殊的控制台(单击DebugView中的perl–d项目以显示此控制台)会显示EPIC和后台的Perl调试器之间的通信内容。
◆Suspenddebuggeratfirststatement。此项目缺省是选中的,选中它会导致调试器在Perl脚本的开始处停止,而不论该处是否有断点。
如果不安装PadWalker模块也是可以使用调试器的,但是在这种情况下localvariables不会被显示。可以从CPAN上下载PadWalker的最近版本并进行安装,例如使用Perl安装中附带的安装管理器(ActiveState附带的是PerlPackageManager)进行安装。
EPIC在进行语法检查时如果发现语法错误,那么会显示错误或警告图标。如果右键单击该图标,并在弹出菜单中选择ExplainErrors/Warnings,那么在ExplainErrors/Warningsview中会显示具体的错误或警告信息。
如果安装了ActivePerl,那么会同时安装Perldoc。通过Perldoc可以查找相关的帮助文档,例如在命令行上输入Perldoc-fuse可以查看use的用法。如果在程序中选择部分文本并单击右键,并在弹出菜单中选择Perldoc(如果没有任何选中,那么会弹出一个输入对话框),那么在PerldocView中会显示查找到的帮助文档。
在ContentAssistPreference页中可以指定代码提示的触发字符,通常不需要对其进行修改,只要取消选中InspectVariables即可关闭此功能。需要注意的是:目前ContentAssist支持使用箭头操作符的方法调用,例如:$smtp=Net::SMTP->new();
$smtp->[contentassist]不支持间接对象的方法调用,例如:
$smtp=newNet::SMTP;$smtp->[nocontentassist]在TemplatesPreference页中可以创建、编辑或者删除模版。例如在NewTemplate对话框的Name文本框中输入for,在Pattern中输入for(${var}=0;${var}<${max};${var}++){}并单击确定就新建了一个新的模版。在编写程序时,输入for并按下Alt+/之后(可以通过Window->Preferences->General->Keys配置),之前定义的模版会被插入到代码中。按下TAB键可以切换模版中的用户自定义变量(例如${var}和${max})。
在TaskTagsPreference页中可以指定一系列用来在注释中作为任务标记的关键字,缺省有TODO和TASK;EPIC使用PerlTidy来格式化源码,SourceFormatterPreference页用来指定PerlTidy的命令行参数。
3PerlProject
推荐以核心Perl发布的惯例形式来组织你的工程:
将你自己的模块保存在工程的某个子目录中,例如在工程根目录下建立一个lib目录,用来保存所有*.pm文件。并将这个子目录添加到@INC中。
将包名映射成子目录名,例如将Foo::Bar包中的代码保存在lib/Foo/Bar.pm文件中,并保证lib/Foo/Bar.pm中只包含Foo::Bar包中的代码。
你自己的Perl脚本保存可以保存在工程中的任何目录里,例如工程根目录下的bin或者cgi-bin目录。
在装载一个包时,不要使用require,而是使用use,例如useFoo::Bar。
4RegExpPlug-in
RegExp插件是个调试正则表达式的小工具,其打开方式如下:选择菜单Window->ShowView->Other,然后在弹出的ShowView对话框中选择EPIC节点下的RegExp。
如果在RegExp文本框中输入正则表达式,在Matchtext文本框中输入进行匹配的文本,并单击右侧的ValidateRegExp按钮。如果表达式和文本匹配,那么会显示绿色图标;否则显示红色图标。如果表达式包含小括号,那么在Matchtext中与小括号部分匹配的文本会高亮显示。
【编辑推荐】