免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: vgra

大家写过读过的perl项目最多有多少行代码 [复制链接]

论坛徽章:
0
发表于 2010-02-04 17:55 |显示全部楼层
回复 17# 兰花仙子

我比较的是面向对象和面向过程,其他的不考虑在内

面向对象确实比面向过程开发效率高,因为它有封装,尽量代码重用

前提是你对两种语言都很熟悉

当然也可以用Perl写,但是我相信开发复杂的程序的话,你会用到Perl面向对象的思想的

论坛徽章:
0
发表于 2010-02-04 17:56 |显示全部楼层
楼主关键时刻可别掉链子啊,上代码是王道,我等坐观如何删减到1400行。

是骡子是马,拉出来溜溜。。。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2010-02-04 18:07 |显示全部楼层
回复  兰花仙子

我比较的是面向对象和面向过程,其他的不考虑在内

面向对象确实比面向过程开发效率高 ...
Pro_sky 发表于 2010-02-04 17:55

我喜欢面向混沌编程:当你开始工作的时候,完全忘记什么是 OO 什么是 OOP。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2010-02-04 18:09 |显示全部楼层
楼主关键时刻可别掉链子啊,上代码是王道,我等坐观如何删减到1400行。

是骡子是马,拉出来溜溜。。。
StephenHuu 发表于 2010-02-04 17:56

你要没代码,不必凑热闹;你要有代码,不必等楼主。

论坛徽章:
0
发表于 2010-02-04 18:12 |显示全部楼层
1、代码是在以前的公司写的,现在手上已经没有了
2、系统确实相当复杂,我相信可以精简优化,但是要从1w4精简到1k4,绝对没可能,不管他多牛
3、我发这个帖子的本意,是了解一下各位大侠大致都用perl做哪些领域的开发,没有其他意思
4、当初开发该系统时,就是看中perl的快速开发能力,但是开发过程中也有人提出,perl能否胜任大型系统的开发的问题,不过最后还是搞定了
5、perl的开发速度确实快,在大型复杂系统的开发方面,感觉纯粹的面向过程模式确实开发起来挺累的,掌控起来不容易

评分

参与人数 1可用积分 +10 信誉积分 +2 收起 理由
flw + 10 + 2 精品文章

查看全部评分

论坛徽章:
0
发表于 2010-02-04 18:16 |显示全部楼层
你要没代码,不必凑热闹;你要有代码,不必等楼主。
flw 发表于 2010-02-04 18:09


我没代码(有的话也不会超过140行。。。), 我是抱着学习的目的来的围观群众

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2010-02-04 18:19 |显示全部楼层
我没代码(有的话也不会超过140行。。。), 我是抱着学习的目的来的围观群众
StephenHuu 发表于 2010-02-04 18:16

140 行也可以啊。拿上来我给你改成 14 行。

论坛徽章:
0
发表于 2010-02-04 20:28 |显示全部楼层
回复 27# flw
  1. #!/usr/bin/perl -w
  2. # SCRIPT: chk_cfg.pl
  3. # AUTHOR: Ray001
  4. # DATE: 2010/01/19
  5. # REV: 1.0
  6. # For Development
  7. #
  8. # PURPOSE:
  9. # 检查ycloansaccreg.prp与p_loan_typ_gl_dtl是否匹配

  10. use DBI;
  11. my $user     = "CREDIT2";    # 数据库用户名
  12. my $password = "PASS";       # 数据库用户密码
  13. my $sid      = "CMIS";       # ORACLE_SID实例名

  14. # 连接到数据库
  15. $dbh = DBI->connect( "DBI:Oracle:$sid", $user, $password )
  16.   || die "cannot connect to Oracle:$!\n";

  17. my $func_id;
  18. my $amt_typ;

  19. if ( !open CFG_FILE, "<ycloansaccreg.prp" ) {
  20.     die "Can't open CFG_FILE! ($!) ";
  21. }

  22. while (<CFG_FILE>) {

  23.     # 匹配获取交易码和金额类型
  24.     if (/(^LN..)(.*),([A-Z]0[0-9][A-Z]?)=/) {
  25.         $func_id = $1;
  26.         $amt_typ = $3;
  27.     }
  28.     else {
  29.         next;
  30.     }

  31.     # 获取该表的字段信息
  32.     $sth = $dbh->prepare(
  33. "SELECT amt_typ FROM p_loan_typ_gl_dtl WHERE func_id='$func_id' AND amt_typ='$amt_typ'"
  34.     );
  35.     $sth->execute();
  36.     @lines = $sth->fetchrow_array();
  37.     if ( @lines == 0 ) {
  38.         print "$func_id $amt_typ not found in p_loan_typ_gl_dtl\n";
  39.     }

  40. }

  41. $sth->finish();
  42. $dbh->disconnect();
复制代码
50行能变5行么?我刚学perl一个月。

论坛徽章:
1
2015亚冠之塔什干火车头
日期:2015-07-13 12:36:28
发表于 2010-02-04 20:33 |显示全部楼层
50行变5行的话,我估计后期维护起来就不爽了吧?

论坛徽章:
0
发表于 2010-02-04 20:52 |显示全部楼层
没必要过度追求精简~~
不过Ray的code的确可以简化一些,偶稍微修改一下:
  1. use strict;
  2. use DBI;

  3. my ($user,$password,$sid) = ("CREDIT2","PASS","CMIS");
  4. my $dbh = DBI->connect( "DBI:Oracle:$sid", $user, $password ) or die $DBI::errstr;
  5. open CFG_FILE, "ycloansaccreg.prp"  or die $!;

  6. while (<CFG_FILE>) {
  7.     my ($func_id,undef,$amt_typ) = /(^LN..)(.*),([A-Z]0[0-9][A-Z]?)=/;
  8.     my $sth = $dbh->prepare("SELECT amt_typ FROM p_loan_typ_gl_dtl WHERE func_id=? AND amt_typ=?");
  9.     $sth->execute($func_id,$amt_typ);
  10.     print "$func_id $amt_typ not found in p_loan_typ_gl_dtl\n" unless $sth->fetchrow_array();
  11.     $sth->finish();
  12. }

  13. $dbh->disconnect();
复制代码
最后强调一下:
没有use strict的code不是好code。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会 限时8.5折

【架构革新 高效可控】2020年8月17日~19日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP