设为首页 收藏本站
查看: 668|回复: 0

[经验分享] Eclipse Perl Integration

[复制链接]

尚未签到

发表于 2017-5-17 07:27:43 | 显示全部楼层 |阅读模式
  1 Installation
    EPIC(Eclipse Perl Integration)是一个基于Eclipse平台的开源Perl集成开发环境。其支持的功能有语法高亮、语法检查、代码提示、Perldoc支持、模版、Perl调试器和正则表达式插件等。
    在安装EPIC之前需要安装Eclipse3.1以上版本,此外还需要安装Perl解释器(Unix和Linux平台通常会缺省安装Perl,Windows平台上可以安装ActivePerl,下载地址www.activestate.com)。
    可以通过Eclipse Update Manager来安装EPIC。选择菜单Help->Software and Updates->Find and Install,在弹出的Install/Update对话框中选择Search for new features to install然后单击下一步,在弹出的Install对话框中单击New Remote Site,在弹出的对话框中输入Name(例如EPIC)和URL(http://e-p-i-c.sf.net/updates)然后单击确定。接下来在Install对话框中选中刚才新建的Site,单击完成。按照向导的指示完成后续的过程,忽略途中提示的未经签名的警告。重启Eclipse后,EPIC应该已经安装完毕了。
    如果要暂时禁用或者卸载EPIC,选择菜单Help->Software and Updates->Manage Configuration,展开弹出对话框左侧的树控件,选中当前版本的EPIC并单击右键,在弹出菜单中选择禁用或者卸载。
  2 Setting Up Preferences
    选择菜单Window->Preferences,在弹出的Preferences对话框左侧的树控件中选择Perl EPIC以打开Perl EPIC General Preferences页。这个页中包含了Perl解释器的路径、解释器的类型以及其他选项等。
    关于解释器的类型,除了standard之外,还可以选择Cygwin。如果选择Cygwin,那么@INC数组的内容会有所变化。至于@INC数组,当使用use ModuleName来装载模块时,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,在弹出的对话框中选择Perl Include Path,然后就可以向@INC中添加项目。如果没有指定绝对路径,那么这个路径是相对于工程目录的。可以使用标准的Eclipse变量,例如${project_loc}。

    关于调试器相关的设置有以下两个:

  • Enable debugger console。这个选择只是在你希望调试EPIC自身的时候有用,在其它情况下不要使用。在调试的时候,一个特殊的控制台(单击Debug View中的perl –d项目以显示此控制台)会显示EPIC和后台的Perl调试器之间的通信内容。
  • Suspend debugger at first statement。此项目缺省是选中的,选中它会导致调试器在脚本的开始处停止,而不论该处是否有断点。
  如果不安装PadWalker模块也是可以使用调试器的,但是在这种情况下local variables 不会被显示。可以从CPAN上下载PadWalker的最近版本并进行安装,例如使用Perl安装中附带的安装管理器(ActiveState附带的是Perl Package Manager)进行安装。

    EPIC在进行语法检查时如果发现语法错误,那么会显示错误或警告图标。如果右键单击该图标,并在弹出菜单中选择Explain Errors/Warnings,那么在Explain Errors/Warnings view中会显示具体的错误或警告信息。

    如果安装了ActivePerl,那么会同时安装Perldoc。通过Perldoc可以查找相关的帮助文档,例如在命令行上输入 Perldoc -f use可以查看use的用法。如果在程序中选择部分文本并单击右键,并在弹出菜单中选择Perldoc(如果没有任何选中,那么会弹出一个输入对话框),那么在Perldoc View中会显示查找到的帮助文档。

    在Content Assist Preference 页中可以指定代码提示的触发字符,通常不需要对其进行修改,只要取消选中Inspect Variables即可关闭此功能。需要注意的是:目前Content Assist支持使用箭头操作符的方法调用,例如:
    $smtp = Net::SMTP->new();
    $smtp->[content assist]
  不支持间接对象的方法调用,例如:
    $smtp = new Net::SMTP;
    $smtp->[no content assist]
  在Templates Preference 页中可以创建、编辑或者删除模版。例如在New Template对话框的Name文本框中输入for,在Pattern中输入for(${var} = 0; ${var} < ${max}; ${var}++) {}并单击确定就新建了一个新的模版。在编写程序时,输入for并按下Alt+/之后(可以通过Window->Preferences->General->Keys配置),之前定义的模版会被插入到代码中。按下TAB键可以切换模版中的用户自定义变量(例如${var}和${max})。

    在Task Tags Preference 页中可以指定一系列用来在注释中作为任务标记的关键字,缺省有TODO 和TASK;EPIC 使用 PerlTidy 来格式化源码,Source Formatter Preference页用来指定PerlTidy的命令行参数。
  
3 Perl Project
  推荐以核心Perl发布的惯例形式来组织你的工程:

  • 将你自己的模块保存在工程的某个子目录中,例如在工程根目录下建立一个lib目录,用来保存所有*.pm文件。并将这个子目录添加到@INC中。
  • 将包名映射成子目录名,例如将Foo::Bar包中的代码保存在lib/Foo/Bar.pm文件中,并保证lib/Foo/Bar.pm中只包含Foo::Bar包中的代码。
  • 你自己的Perl脚本保存可以保存在工程中的任何目录里,例如工程根目录下的bin或者cgi-bin目录。
  • 在装载一个包时,不要使用require,而是使用use,例如use Foo::Bar。
  4 RegExp Plug-in
    RegExp插件是个调试正则表达式的小工具,其打开方式如下:选择菜单Window->Show View->Other,然后在弹出的Show View对话框中选择EPIC节点下的RegExp。
    如果在RegExp文本框中输入正则表达式,在Match text文本框中输入进行匹配的文本,并单击右侧的Validate RegExp按钮。如果表达式和文本匹配,那么会显示绿色图标;否则显示红色图标。如果表达式包含小括号,那么在Match text中与小括号部分匹配的文本会高亮显示。例如:
RegExpMatch text高亮显示的文本
x(.*)xabcxdefxghixjkldefxghi
x(.*?)xabcxdefxghixjkldef
.*x(.*?)xabcxdefxghixjklghi

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-378260-1-1.html 上篇帖子: perl官文探索 下篇帖子: perl-锚位
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表