Welcome 微信登录

首页 / 软件开发 / JAVA / 如何用Eclipse调试Perl应用程序

如何用Eclipse调试Perl应用程序2011-02-22 IBM Martin C. Brown开始之前

本教程将介绍 Eclipse 的 EPIC 插件提供的调试功能,该插件提供了功能丰富的调试环境 —— 可为 EPIC Perl 开发环境所用且与此开发环境相集成。本教程假设读者了解 Eclipse 环境,并且有使用 Perl 的经验。

关于本教程

EPIC 结合了两种有助于 Perl 应用程序测试流程的系统:RegExp 和调试器。RegExp 是一个测试 Perl 正则表达式的接口。正则表达式是许多 Perl 应用程序的主要组成部分,但保证表达式的正确性是一个非常复杂的问题。使用 EPIC RegExp 视图,您可以根据已知数据检查结果,测试并修改正则表达式。

EPIC Perl 调试器是一种较为传统的工具,完全集成于 Eclipse 环境之中。除测试本地化脚本外,EPIC 调试器还可用于调试 Web 及远程执行 Perl 脚本,因此是多种环境下的理想工具。

本教程将介绍如何导入和移动大型应用程序、如何简化应用程序视图以使代码更易于理解,从而也更易于调试。另外还会介绍 EPIC 调试环境,它完全位于 Eclipse 内部,为标准脚本、CGI 脚本和正则表达式提供了一个完整的调试环境。

前提条件

要开始使用 EPIC,需要满足以下前提条件:

Eclipse V3.1 或 3.0

Java™ 技术 V1.3、1.4 或更高版本

Perl V5.8.6 或更高版本。绝大多数 UNIX®、Linux® 安装及 Mac OS X 中都包含 Perl。Windows® 上使用 ActivePerl。

Eclipse 的 EPIC 插件

PadWalker Perl 模块。ActiveState 版本 也可。

传统 Perl 调试技术

在介绍 EPIC 之前,让我们首先来看看 Perl 所使用的传统调试技术,这些技术随时可用,并且确实有一些优点。但它们也有着自身的局限性。理解其局限性有助于您理解为何需要一种更好的调试环境。

Perl 中的调试简介

如果您问一位典型的 Perl 程序员怎样调试其应用程序,他多半会告诉您他只是使用简单的输出语句,在程序执行时转储信息。例如,您可向循环中添加一条简单的语句,来输出您正在计算或处理的值,如清单 1 所示。

清单 1. 使用输出语句进行调试

my $sth = $dbh->prepare($query);

$sth->execute();

while(my $row = $sth->fetchrow_hashref())
{
print STDERR Dumper($row);

printf("%s, %s (%s)<br/>",
$row->{album},
$row->{artist},
$row->{genre});
}
$sth->finish();

在这种情况下,您已输出了从数据库 (MySQL) 载入到 STDERR 的行转储。STDERR 使用起来非常方便,这是因为在 UNIX 主机上,您可将 STDERR 的输出重定位到日志文件,同时使其他输出照常定位到标准输出。

示例中的 Dumper() 函数会实际输出任何变量的结构,包括嵌入式和嵌套的数组、散列及其他内容。输出格式与您手动生成的结构形式相同。此函数(Data::Dumper 模块的一部分)非常有用,既可作为以适于人类阅读的格式输出变量的方法,也可用于写入一个能读回的结构,使用 eval() 可重新创建一个新变量。