您的位置:首页 >> 操作系统 >> Linux >> 正文
Linux RSS
 

功能丰富的Perl:用Perl保存

http://www.rdxx.com 03年09月02日 08:35 互连网 我要投稿

关键词: 功能 , 保存 , Perl

  数据存储是计算机编程中常见的问题。CPAN Persistent 类通过一个简化数据创建、检索和管理的通用接口,使数据存储变得简单。通过面向对象的方法,可以在项目中将 Persistent 类作为自己的数据类的父类透明地使用。
  
  持久性介绍
  所有程序员都有必须解决数据持久性问题的经历。例如,对于如将文档存入文件和将事务存入数据库等任务,即使最简单的应用程序也需要大量工作。可以将数据持久性定义为程序和存储设备之间达成的契约,该契约指定如何存储和检索数据。
  
  CPAN 定义:
  “CPAN 是综合 Perl 档案网络。综合:其目的是包含可能需要的所有 Perl 资料。档案:从 1999 年 9 月至今,已有 760 兆字节。网络:全世界有超过一百个 CPAN 镜像站点。”
  本文集中讲述在作者和读者事先都知道对象属性的情况下,如何使对象属性持久。本文不讨论动态发现对象属性和存储属性以外的特性(如行为)的主题,因为需要很多篇幅才能把这些主题讲清楚。
  
  熟悉面向对象编程、数据库、Perl 和 Perl 继承将对阅读本文有帮助。
  
  使对象属性持久只是软件开发过程的一小部分。首先,必须确定持久性的需求。需要保存什么?需要恢复什么?在恢复存储的数据之前,需要手工编辑吗?诸如此类的问题将确定软件如何将持久数据归档。不幸地是,没有一份调查表可以确定项目确切的持久性需要。软件设计师必须通过智能设计,定义并满足项目需求。很重要的一点是,最后的解决方案要确实是问题的解决方案,而不只是时髦的行业词语。例如,XML 解决数据持久性问题的能力比只用砖头来建造房屋好不到哪里。
  
  持久数据示例
  Perl 文件 simple 显示了预定义的关键字集合如何能够实现简单的持久性。这种方法有很多问题:文件格式是任意的,只保存一个关键字集合,根本没有对象、数据值限制到一行文本等等。
  
  Persistent 类的简单使用:Persistent::File
  Persistent 类旨在使数据持久性变得简单。为此,您必须阅读文档。对于掌握处理持久数据的方便的预制类而言,这只是很小的代价。所以,先花上几分钟或几小时来做这件事,以后将节省您的时间。有关文档和示例,请参阅 Persistent 类主页(请参阅参考资料)。
  
  第一个示例 first 将基于 Persistent::File 模块文档中给出的 simple 示例,并将描述达到持久性的步骤。
  
  清单 1:定义数据
  my %problems = (
      'Homework 1, Problem 1' => [0,5,2],
      'Homework 1, Problem 2' => [1,8,5],
      'Homework 1, Problem 3' => [2,2,4],
      'Homework 1, Problem 4' => [3,0,3],
      'Homework 1, Problem 5' => [4,1,2],
        );
  
  首先,定义要存储在数据存储器中的数据。在 Persistent 类中,数据存储器是抽象存储设备,例如,它可以是文件或数据库。该例是自包容的,但是数据也可能来自别处。
  
  清单 2:使用 eval 来捕获错误
  
  use English;
  eval
  {
  };
  print "An error occurred: $EVAL_ERROR\n" if $EVAL_ERROR;
  
  因为不希望程序在出现执行错误时终止,所以将所有操作放在 eval 语句中。English 模块使我们可以使用 $EVAL_ERROR 、而不是 $@ 来表示错误消息。
  
  清单 3:定义数据存储器
  
  # 从文件创建持久对象
  my $equation = new Persistent::File('variables.txt');
  
  我们在这里创建了新的 Persistent::File 对象,其内容将存储在文件 variables.txt 中。
  
  清单 4:定义属性
  
  $equation->add_attribute('name', 'ID', 'VarChar', undef, 80);
  $equation->add_attribute('x', 'Persistent', 'Number', 0, 10);

共3页  第1页 第2页 第3页


 
 
标签: 功能 , 保存 , Perl 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站