快速业务通道

用Eclipse构建Perl应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
EPIC 会对代码的某些元素自动地进行格式化。在前面讨论对括号和引号进行自动补全时,您已经看到了 EPIC 自动调整不同元素布局的方式。还可以按下 Control-Shift-F 或者从 Source 菜单中选择 Format,让 EPIC 将代码重新格式化为可读格式。

准确的格式取决于首选项,这是通过 Eclipse 首选项中的 Source Formatting 面板设置的(见图 15)。格式化由 Perltidy 执行,它读取代码并根据某些标准对代码进行重新格式化(这些标准的细节见 O''Reilly的Programming Perl)。

图 15. 设置源代码格式化首选项

用Eclipse构建Perl应用程序(13)

时间:2011-02-12 IBM Martin Brown

主要的选项按照以下方式影响格式化。“Cuddle else” 改变 else 语句的行为,见清单 1:

清单 1. else 语句

} else { to } else {

“The opening brace on the new line” 让 Perltidy 将代码块的起始花括号放在新行上。清单 2 给出一个示例。

清单 2. 让 Perltidy 将代码块的花括号放在新行上

if ($a == 1) { 变成 if ($a == 1) {

“Lining up parentheses” 确保在括号跨多行时将括号对齐。最后,“Swallow optional blank lines” 删除没有意义的任何空行。例如,注释前面的空行保留,但是后面的空行不保留。主要代码块(例如函数、循环和测试)之间的空行保留。

通过在执行 Perltidy 时调用的命令行上添加参数,可以配置任何其他选项。

重构

代码重构就是调整代码,但是不改变它的行为。在 EPIC 中,重构可以将一个代码块转换为函数,让代码的任何部分都可以访问此功能。EPIC 将提取代码块所需的输入变量,判断输出,并将它们分别转换为参数和返回值。为了使用重构,我们来考虑用来下载并将 RSS 提要 URL 分析为 RSS 对象的代码段(见清单 3)。

清单 3. 用来下载并将 RSS 提要 URL 分析为 RSS 对象的代码段

foreach my $feed ( sort keys %{$feeds} ) {    my $response = $ua->get( $feeds->{$feed} );    if ( $response->is_success )    {      my $rss = XML::RSS->new();      $rss->parse( $response->{_content} );    } }

如果选择这个 foreach 循环的内容(整个块的内容,不包括 foreach 语句和括号),右击并选择 Refactor > Extract subroutine,EPIC 就会将此代码转换为以下代码(见清单 4):

清单 4. 提取子例程

foreach my $feed ( sort keys %{$feeds} ) {    my ($response, $rss) = parse_rss_fromurl ($feeds, $ua, $feed); }   sub parse_rss_fromurl {    my $feeds  = shift;    my $ua    = shift;    my $feed   = shift;    my $response = $ua->get( $feeds->{$feed} );    if ( $response->is_success )    {      my $rss = XML::RSS->new();      $rss->parse( $response->{_content} );    }    return ( $response, $rss ); }

可以看到,EPIC 已经判断出了新的子例程需要的变量以及返回值。代码的实际作用没有变,但是整个代码块已经重构为一个新的子例程。还要注意,foreach 循环现在包含必要的子例程调用和参数。

用Eclipse构建Perl应用程序(14)

时间:2011-02-12 IBM Martin Brown

模板和模块

许多源代码基于相似的元素。例如,尽管子例程可能不同,但是基本内容是相同的:需要同样的关键词、括号和用于提取子例程参数的相同结构。模板使开发人员可以更快地将这一结构插入代码。

创建模板

模板是通过 Eclipse 首选项中的 Templates 面板定义的。模板就是一个可以快速且轻松

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号