亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪(fǎng)問(wèn)板塊 發(fā)新帖
樓主: vgra
打印 上一主題 下一主題

大家寫(xiě)過(guò)讀過(guò)的perl項(xiàng)目最多有多少行代碼 [復(fù)制鏈接]

論壇徽章:
0
41 [報(bào)告]
發(fā)表于 2010-02-05 10:13 |只看該作者
my $sth = $dbh->prepare("SELECT amt_typ FROM p_loan_typ_gl_dtl WHERE func_id=? AND amt_typ=?";

放到while外


這個(gè)的確,疏忽了~

論壇徽章:
0
42 [報(bào)告]
發(fā)表于 2010-02-05 10:23 |只看該作者
  1. use IO::File;
  2. use DBI;
  3. my $dbh = DBI->connect(...);
  4. for (map { (split)[1] } IO::File->new('domains.txt')->getlines) {
  5.         print "..." unless $dbh->do(...);
  6. }
復(fù)制代碼
沒(méi)有測(cè)試,不知道能不能用

論壇徽章:
0
43 [報(bào)告]
發(fā)表于 2010-02-05 10:40 |只看該作者
沒(méi)必要過(guò)度追求精簡(jiǎn)~~
不過(guò)Ray的code的確可以簡(jiǎn)化一些,偶稍微修改一下:最后強(qiáng)調(diào)一下:
沒(méi)有use strict的 ...
蘭花仙子 發(fā)表于 2010-02-04 20:52



    仙子妹妹你把我的next去掉了。我需要跳過(guò)不滿(mǎn)足匹配的行啊。比如注釋和空行等。

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
44 [報(bào)告]
發(fā)表于 2010-02-05 10:59 |只看該作者
雖然 cobrawgl 和仙子已經(jīng)給出了更短的代碼,
但是我覺(jué)得該認(rèn)輸?shù)臅r(shí)候就要認(rèn)輸,Ray001 的代碼寫(xiě)的確實(shí)很不錯(cuò)!
如果能加上 use strict 就更好了。
至于那個(gè) next,確實(shí)寫(xiě)的有點(diǎn)不好,
應(yīng)該用 next unless /................../; 這種結(jié)構(gòu)更合理一些。(不習(xí)慣 unless 可以換成 if not)

如果只是追求代碼短的話(huà),cobrawgl 的方案應(yīng)該很不錯(cuò)。
另外 Class::DBI 比 DBI 更抽象,是不是用它可以更短一些,沒(méi)用過(guò)不太清楚。

論壇徽章:
0
45 [報(bào)告]
發(fā)表于 2010-02-05 11:05 |只看該作者
回復(fù) 43# Ray001


    加上

  1. use IO::File;
  2. use DBI;
  3. my $dbh = DBI->connect(...);
  4. while(my $line = ($fh ||= IO::File->new('domains.txt'))->getline) {
  5.     $dbh->do ........ if($line =~ (/(^LN..)(.*),([A-Z]0[0-9][A-Z]?)=/));
  6. }

復(fù)制代碼

論壇徽章:
0
46 [報(bào)告]
發(fā)表于 2010-02-05 11:23 |只看該作者
#!/usr/bin/perl

## create a MARC::Record object.
use MARC::Record;
my $record = MARC::Record->new();

## add the leader to the record. optional.
$record->leader('00903pam   2200265 a 4500');

## create an author field.
my $author = MARC::Field->new('100',1,'',a => 'Logan, Robert K.',d => '1939-');
## create a title field.
my $title = MARC::Field->new('245','1','4',a => 'The alphabet effect /',c => 'Robert K. Logan.');
$record->append_fields($author, $title);
## open a filehandle to write to 'record.dat'.
open(OUTPUT, '> record.dat') or die $!;
print OUTPUT $record->as_usmarc();
close(OUTPUT);
像這樣的Perl程序很難把代碼變短吧?

論壇徽章:
0
47 [報(bào)告]
發(fā)表于 2010-02-05 11:27 |只看該作者
雖然 cobrawgl 和仙子已經(jīng)給出了更短的代碼,
但是我覺(jué)得該認(rèn)輸?shù)臅r(shí)候就要認(rèn)輸,Ray001 的代碼寫(xiě)的確實(shí)很不 ...
flw 發(fā)表于 2010-02-05 10:59



    我是來(lái)學(xué)習(xí)的。還不大熟悉unless之類(lèi)的perl方言,這貼里,已經(jīng)從諸位高手回復(fù)中學(xué)到不少啊。

論壇徽章:
0
48 [報(bào)告]
發(fā)表于 2010-02-05 11:36 |只看該作者
雖然 cobrawgl 和仙子已經(jīng)給出了更短的代碼,
但是我覺(jué)得該認(rèn)輸?shù)臅r(shí)候就要認(rèn)輸,Ray001 的代碼寫(xiě)的確實(shí)很不 ...
flw 發(fā)表于 2010-02-05 10:59



    ORM 在使用的時(shí)候要先做一些設(shè)置,所以對(duì)這個(gè)短程序來(lái)說(shuō),只會(huì)增加代碼

論壇徽章:
0
49 [報(bào)告]
發(fā)表于 2010-02-05 11:43 |只看該作者
#!/usr/bin/perl

## create a MARC::Record object.
use MARC::Record;
my $record = MARC::Record->n ...
zhumao 發(fā)表于 2010-02-05 11:23
  1. use IO::File;
  2. use MARC::Record;
  3. IO::File->new('> record.dat')->print( MARC::Record->new()->leader('00903pam   2200265 a 4500')->append_fields(MARC::Field->new('100',1,'',a => 'Logan, Robert K.',d => '1939-'), MARC::Field->new('245','1','4',a => 'The alphabet effect /',c => 'Robert K. Logan.'))->as_usmarc());
復(fù)制代碼
想縮短應(yīng)該是沒(méi)問(wèn)題的,關(guān)鍵是沒(méi)有多大意義啊

論壇徽章:
0
50 [報(bào)告]
發(fā)表于 2010-02-05 11:49 |只看該作者
本帖最后由 Ray001 于 2010-02-05 15:01 編輯
  1. #!/usr/bin/perl -w
  2. # SCRIPT: chk_cfg.pl
  3. # AUTHOR: Ray001
  4. # DATE: 2010/01/19
  5. # REV: 1.11
  6. # For Development
  7. #
  8. # PURPOSE:
  9. # 檢查ycloansaccreg.prp與p_loan_typ_gl_dtl是否匹配

  10. use strict;
  11. use DBI;
  12. my $user     = "CREDIT2";    # 數(shù)據(jù)庫(kù)用戶(hù)名
  13. my $password = "PASS";       # 數(shù)據(jù)庫(kù)用戶(hù)密碼
  14. my $sid      = "CMIS";       # ORACLE_SID實(shí)例名

  15. # 連接到數(shù)據(jù)庫(kù)
  16. my $dbh = DBI->connect( "DBI:Oracle:$sid", $user, $password )
  17.   || die "cannot connect to Oracle:$DBI::errstr\n";

  18. # prepare查詢(xún)數(shù)據(jù)庫(kù)表的SQL
  19. my $sth = $dbh->prepare(
  20.     "SELECT amt_typ FROM p_loan_typ_gl_dtl WHERE func_id=? AND amt_typ=?" );

  21. # 如果打開(kāi)配置文件失敗, 則報(bào)錯(cuò)退出
  22. open CFG_FILE, "</oradata/cmis/cfg/ycloansaccreg.prp"  or  die "Can't open CFG_FILE! ($!) ";


  23. while (<CFG_FILE>) {

  24.     # 跳過(guò)不匹配的行, $1匹配交易碼, $3匹配金額類(lèi)型
  25.     next unless /(^LN..)(.*),([A-Z]0[0-9][A-Z]?)=/;

  26.     # 以$1 $3的值為條件, 查詢(xún)數(shù)據(jù)庫(kù)表
  27.     $sth->execute( $1, $3 );

  28.     # 如果在數(shù)據(jù)庫(kù)中沒(méi)有找到記錄, 打印提示信息
  29.     print "$1 $3 not found in p_loan_typ_gl_dtl\n"
  30.       unless $sth->fetchrow_array();


  31. }

  32. $sth->finish();
  33. $dbh->disconnect();
復(fù)制代碼
結(jié)合仙子、hitsubunnu、flw的建議,隆重推出1.11版。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP