今天终于把perl写出来了
来源:互联网 发布:java代码调用ant出错 编辑:程序博客网 时间:2024/04/26 17:02
<pre name="code" class="plain">yoliu@mnsdev13~/svn/WWW/content/gc/gdes/cgi-bin$ vim asset.pl 1 use strict; 2 use warnings; 3 use CGI; 4 use URI; 5 use Data::Dumper qw(Dumper); 6 use Log::Dispatch::File; 7 use POSIX qw(strftime); 8 use File::Basename; 9 use FixInc::Logger;10 use FixInc::DBAccess;11 use CGI::Carp qw(fatalsToBrowser);12 use Smart::Comments;13 use Smart::Comments;14 my $q = new CGI;15 my $srv = $q->param('searchServer');16 my $name_fl = $q->param('nameFl');17 18 my $dbh = FixInc::DBAccess->connect(19 server => $srv,20 database => 'dmo_govcorp',21 log => FixInc::Logger->new(),22 login => 'READONLY',23 ) or die "Cannot connect to $srv: $FixInc::DBAccess::errstr";24 my $searchSQL = "select top 10 party.party_id,count(*) from party,asset where asset.issuer_id = party.party_id group by party.party_id order by count(*) desc";25 26 # my @resJson; 27 28 my $sth = $dbh -> selectall_arrayref ($searchSQL);29 30 my $tmp;31 foreach $tmp (@{$sth})32 33 { print join(',', @$tmp), "\n";34 }35 "asset.pl" 36L, 1044C writtenyoliu@mnsdev13~/svn/WWW/content/gc/gdes/cgi-bin$ perl5 asset.pl0x000019000050632a,885580x0002a0000f8cd7f6,782170x0000fa0004a4e2b8,448130x0002a0005ba0f5ac,408060x000019000050662f,338360x0003f90049bc1619,331460x00003400008fb70c,328110x000019000050622b,308030x000019000050642d,305610x0002460001a6a84b,29253yoliu@mnsdev13~/svn/WWW/content/gc/gdes/cgi-bin$
1 use strict; 2 use warnings; 3 use CGI; 4 use URI; 5 use Data::Dumper qw(Dumper); 6 use Log::Dispatch::File; 7 use POSIX qw(strftime); 8 use File::Basename; 9 use FixInc::Logger;10 use FixInc::DBAccess;11 use CGI::Carp qw(fatalsToBrowser);12 use Smart::Comments;13 use Smart::Comments;14 use Time::Local;15 my $q = new CGI;16 my $srv = $q->param('searchServer');17 my $name_fl = $q->param('nameFl');18 open(FD,"LOG.txt")||die("Can not open the file!$!n");19 20 my %s;21 my %e;22 while(<FD> )23 {24 if( /(.*)\s*INFO.*Created changeset\s*(.*)/){25 $s{$2} =$1;26 }27 if( /(.*)\s*INFO.*Closing changeset\s*(.*)/){28 $e{$2} =$1;29 }30 }31 32 foreach my $k (keys %s) {33 next unless exists $s{$k} and exists $e{$k};34 my $t1 = l2t($e{$k});35 my $t2 = l2t($s{$k});36 print "$e{$k} - $s{$k} = " .($t1-$t2);37 }38 39 sub l2t40 {41 my ($str) = @_;42 if ($str=~/(\d{4})\/(\d{2})\/(\d{2})\s*(\d{2}):(\d{2}):(\d{2})/) {43 #print "$1 $2 $3 $4 $5 $6\n";44 return timelocal( $6, $5, $4, $3, $2, $1 );45 }46 return undef;47 }48 48 49 yoliu@mnsdev13~/svn/WWW/content/gc/gdes/cgi-bin$ perl5 asset.pl2015/10/15 01:03:36 - 2015/10/15 01:03:34 = 2yoliu@mnsdev13~/svn/WWW/content/gc/gdes/cgi-bin$
yoliu@mnsdev13~/svn/WWW/content/gc/gdes/cgi-bin$ vim asset.pl 1 use strict; 2 use warnings; 3 use CGI; 4 use URI; 5 use Data::Dumper qw(Dumper); 6 use Log::Dispatch::File; 7 use POSIX qw(strftime); 8 use File::Basename; 9 use FixInc::Logger; 10 use FixInc::DBAccess; 11 use CGI::Carp qw(fatalsToBrowser); 12 use Smart::Comments; 13 use Smart::Comments; 14 my $q = new CGI; 15 my $srv = $q->param('searchServer'); 16 my $name_fl = $q->param('nameFl'); 17 18 my $dbh = FixInc::DBAccess->connect( 19 server => $srv, 20 database => 'dmo_govcorp', 21 log => FixInc::Logger->new(), 22 login => 'READONLY', 23 ) or die "Cannot connect to $srv: $FixInc::DBAccess::errstr"; 24 my $searchSQL = "select top 10 party.party_id,count(*) from party,asset where asset.issuer_id = party.party_id group by party.party_id order by count(*) desc"; 25 26 my $sth = $dbh -> selectall_hashref ($searchSQL,['party_id']); 27 foreach my $cat ( keys %$sth ) { 28 print join(', ', sort { length($b) <=> length($a) } values %{ $sth->{$cat} }), "\n"; 29 } 30 ~~~~~"asset.pl" 30L, 1070C writtenyoliu@mnsdev13~/svn/WWW/content/gc/gdes/cgi-bin$ perl5 asset.pl0x00003400008fb70c, 328120x000019000050622b, 308020x0002a0005ba0f5ac, 408520x000019000050642d, 305610x000019000050662f, 338360x000019000050632a, 885580x0003f90049bc1619, 332150x0002a0000f8cd7f6, 782530x0002460001a6a84b, 292530x0000fa0004a4e2b8, 44840
yoliu@mnsdev13~/svn/WWW/content/gc/gdes/cgi-bin$ vim asset.pl 1 use strict; 2 use warnings; 3 use CGI; 4 use URI; 5 use Data::Dumper qw(Dumper); 6 use Log::Dispatch::File; 7 use POSIX qw(strftime); 8 use File::Basename; 9 use FixInc::Logger;10 use FixInc::DBAccess;11 use CGI::Carp qw(fatalsToBrowser);12 use Smart::Comments;13 use Smart::Comments;14 my $q = new CGI;15 my $srv = $q->param('searchServer');16 my $name_fl = $q->param('nameFl');17 18 my $dbh = FixInc::DBAccess->connect(19 server => $srv,20 database => 'dmo_govcorp',21 log => FixInc::Logger->new(),22 login => 'READONLY',23 ) or die "Cannot connect to $srv: $FixInc::DBAccess::errstr";24 my $searchSQL = "select top 10 party.party_id,count(*) from party,asset where asset.issuer_id = party.party_id group by party.party_id order by count(*) desc";25 26 # my @resJson; 27 28 my $sth = $dbh -> selectall_arrayref ($searchSQL);29 # determine dimensions of matrix30 my $rows = (!defined ($sth) ? 0 : scalar (@{$sth}));31 my $cols = ($rows == 0 ? 0 : scalar (@{$sth->[0]}));32 for (my $i = 0; $i < $rows; $i ++) # print each row33 {34 my $delim = "";35 for (my $j = 0; $j < $cols; $j ++)36 {37 $sth -> [$i][$j] = "" if !defined ($sth -> [$i][$j]); # NULL?38 print $delim . $sth -> [$i][$j];39 $delim = ",";40 }41 print "\n";42 }"asset.pl" 42L, 1469C writtenyoliu@mnsdev13~/svn/WWW/content/gc/gdes/cgi-bin$ perl5 asset.pl0x000019000050632a,885580x0002a0000f8cd7f6,782100x0000fa0004a4e2b8,448000x0002a0005ba0f5ac,407600x000019000050662f,338360x0003f90049bc1619,331400x00003400008fb70c,328100x000019000050622b,308030x000019000050642d,305610x0002460001a6a84b,29253yoliu@mnsdev13~/svn/WWW/content/gc/gdes/cgi-bin$
yoliu@mnsdev13~/svn/WWW/content/gc/gdes/cgi-bin$ vim asset.pl 1 use strict; 2 use warnings; 3 use CGI; 4 use URI; 5 use Data::Dumper qw(Dumper); 6 use Log::Dispatch::File; 7 use POSIX qw(strftime); 8 use File::Basename; 9 use FixInc::Logger; 10 use FixInc::DBAccess; 11 use CGI::Carp qw(fatalsToBrowser); 12 use Smart::Comments; 13 use Smart::Comments; 14 my $q = new CGI; 15 my $srv = $q->param('searchServer'); 16 my $name_fl = $q->param('nameFl'); 17 18 my $dbh = FixInc::DBAccess->connect( 19 server => $srv, 20 database => 'dmo_govcorp', 21 log => FixInc::Logger->new(), 22 login => 'READONLY', 23 ) or die "Cannot connect to $srv: $FixInc::DBAccess::errstr"; 24 my $searchSQL = "select top 10 party.party_id,count(*) from party,asset where asset.issuer_id = party.party_id group by party.party_id order by count(*) desc"; 25 26 my @resJson; 27 28 29 my $sth = $dbh->prepare($searchSQL); 30 $sth->execute(); 31 while(my @row=$sth->fetchrow_array()){ 32 if ($name_fl){ 33 my $myrow = join "#|%",@row; 34 push @resJson,$myrow; 35 } 36 else { 37 push @resJson,@row; 38 } 39 } 40 $sth->finish(); 41 $dbh->disconnect; 42 print "Content-Type:application/json\r\n\r\n"; 43 my $i=0; 44 45 for(@resJson) 46 { 47 $i++; 48 49 if ($i % 2) 50 { 51 print $_."," ; 52 } 53 else 54 { 55 print "$_\n" ; 56 57 } 58 }"asset.pl" 58L, 1663C writtenyoliu@mnsdev13~/svn/WWW/content/gc/gdes/cgi-bin$ perl5 asset.plContent-Type:application/json0x000019000050632a,885580x0002a0000f8cd7f6,781910x0000fa0004a4e2b8,447920x0002a0005ba0f5ac,407350x000019000050662f,338360x0003f90049bc1619,331070x00003400008fb70c,328060x000019000050622b,308030x000019000050642d,305610x0002460001a6a84b,29253yoliu@mnsdev13~/svn/WWW/content/gc/gdes/cgi-bin$
别人给的提示:
把搜索结果打印出来
hash
my $sth = $dbh->prepare("SELECT * FROM foo");
$sth->execute();
while (my $ref = $sth->fetchrow_hashref()) {
print "Found a row: id = $ref->{'id'}, name = $ref->{'name'}\n";
}
$sth->finish
array
while (@row = $sth->fetchrow_array) {
$sth2->execute($row[0]);
}
1 #!/usr/local/bin/perl5 2 ############################################################## 3 ### 4 ### $Id: gc_benchmark_curver.pl 53862 2013-02-22 09:19:54Z eric.li $ 5 ### 6 ############################################################## 7 use strict; 8 use warnings; 9 10 use CGI; 11 use URI; 12 use Data::Dumper qw(Dumper); 13 use Log::Dispatch::File; 14 use POSIX qw(strftime); 15 use File::Basename; 16 use FixInc::Logger; 17 use FixInc::DBAccess; 18 use CGI::Carp qw(fatalsToBrowser); 19 use Smart::Comments; 20 21 my $q = new CGI; 22 23 my $srv = $q->param('searchServer'); # no default 24 my $sKey = $q->param('searchKey'); 25 my $sValue = $q->param('sValue'); 26 my $name_fl = $q->param('nameFl'); 27 28 my $dbh = FixInc::DBAccess->connect( 29 server => $srv, 30 database => 'dmo_rigs', 31 log => FixInc::Logger->new(), 32 login => 'READONLY', 33 ) or die "Cannot connect to $srv: $FixInc::DBAccess::errstr"; 34 35 my $condition; 36 if($sKey eq 'chain_ric'){ 37 if ( $sValue =~ /\%/ ) { 38 $condition = " upper(c.chain_ric) like upper('$sValue') \n"; 39 } else { 40 $condition = " upper(c.chain_ric) = upper('$sValue') \n"; 41 } 42 } 43 elsif ($sKey eq 'long_name'){ 44 if ( $sValue =~ /\%/ ) { 45 $condition = " upper(c.short_name) like upper('$sValue') OR upper(c.long_name) like upper('$sValue') 46 OR upper(c.long_disp_name) like upper('$sValue') OR upper(c.short_disp_name) like upper('$sValue') "; 47 } else { 48 $condition = " upper(c.short_name) = upper('$sValue') OR upper(c.long_name) = upper('$sValue') 49 OR upper(c.long_disp_name) = upper('$sValue') OR upper(c.short_disp_name) = upper('$sValue') "; 50 } 51 } 52 elsif($sKey eq 'rt_ric'){ 53 if ( $sValue =~ /\%/ ){ 54 $condition = "exists (select 1 from points p where p.curve_id = c.curve_id and upper(rt_ric) like upper('$sValue'))\n"; 55 }else{ 56 $condition = "exists (select 1 from points p where p.curve_id = c.curve_id and upper(rt_ric) = upper('$sValue'))\n"; 57 } 58 }elsif($sKey eq 'curve_id'){ 59 $condition = "c.curve_id = $sValue\n"; 60 } 61 62 my $curve_name = $name_fl ?',c.short_name,c.long_name':''; 63 my $order = $name_fl ?'c.long_name,c.short_name':'c.curve_id'; 64 65 my $searchSQL = "SELECT c.curve_id $curve_name FROM dmo_rigs..curves c WHERE $condition ORDER BY $order"; 66 67 my @resJson; 68 69 my $sth = $dbh->prepare($searchSQL); 70 $sth->execute();71 while(my @row=$sth->fetchrow_array()){ 72 if ($name_fl){ 73 my $myrow = join "#|%",@row; 74 push @resJson,$myrow; 75 } 76 else { 77 push @resJson,@row; 78 } 79 } 80 $sth->finish(); 81 $dbh->disconnect; 82 print "Content-Type:application/json\r\n\r\n"; 83 print join(",",@resJson); 84 85 86 __END__ 87
因为是根据SQl 写语句嘛
SQL是这样的:
1> select top 10 party.party_id,count(*) from party,assetwhere asset.issuer_id = party.party_id group by party.party_id order bycount(*) desc
2> go
party_id
------------------ -----------
0x000019000050632a 88557
0x0002a0000f8cd7f6 76602
0x0000fa0004a4e2b8 43586
0x0002a0005ba0f5ac 39669
0x000019000050662f 33835
0x00003400008fb70c 32641
0x0003f90049bc1619 31755
0x000019000050622b 30805
0x000019000050642d 30561
0x0002460001a6a84b 29252
(10 rows affected)
1>
1 use strict; 2 use warnings; 3 4 use CGI; 5 use URI; 6 use Data::Dumper qw(Dumper); 7 use Log::Dispatch::File; 8 use POSIX qw(strftime); 9 use File::Basename; 10 use FixInc::Logger; 11 use FixInc::DBAccess; 12 use CGI::Carp qw(fatalsToBrowser); 13 use Smart::Comments; 14 use Smart::Comments; 15 16 my $q = new CGI; 17 my $srv = $q->param('searchServer'); 18 my $name_fl = $q->param('nameFl'); 19 my $dbh = FixInc::DBAccess->connect( 20 server => $srv, 21 database => 'dmo_govcorp', 22 23 log => FixInc::Logger->new(), 24 login => 'READONLY', 25 26 27 ) or die "Cannot connect to $srv: $FixInc::DBAccess::errstr"; 28 my $searchSQL = "select top 10 party.party_id,count(*) from party,asset where asset.issuer_id = party.party_id gr oup by party.party_id order by count(*) desc"; 29 30 31 my @resJson; 32 33 34 my $sth = $dbh->prepare($searchSQL); 35 $sth->execute(); 36 while(my @row=$sth->fetchrow_array()){ 37 if ($name_fl){ 38 my $myrow = join "#|%",@row; 39 push @resJson,$myrow; 40 } 41 else { 42 push @resJson,@row; 43 } 44 } 45 $sth->finish(); 46 $dbh->disconnect; 47 print "Content-Type:application/json\r\n\r\n"; 48 print join(",",@resJson);
运行结果:
yoliu@mnsdev13~/svn/WWW/content/gc/gdes/cgi-bin$ perl5 asset.pl
Content-Type:application/json
0x000019000050632a,88558,0x0002a0000f8cd7f6,78133,0x0000fa0004a4e2b8,44702,0x0002a0005ba0f5ac,40639,0x000019000050662f,33836,0x0003f90049bc1619,33038,0x00003400008fb70c,32795,0x000019000050622b,30803,0x000019000050642d,30561,0x0002460001a6a84b,29253
yoliu@mnsdev13~/svn/WWW/content/gc/gdes/cgi-bin$
43 my $i=0;
44
45 for(@resJson)
46 {
47 $i++;
48
49 if ($i % 2)
50 {
51 print $_."," ;
52 }
53 else
54 {
55 print "$_\n" ;
56
57 }
58 }
也可以更改为: 42 print "Content-Type:application/json\r\n\r\n";
43 print $_,"\n" for map {$_ % 2 ? () : ($resJson[$_] . "," . $resJson[$_+1]) } (0..$#resJson);
另外开始的时候:
map {print $_,"\n"} @resJson;
结果也是一样的。
今天又写了个新的:
- 今天终于把perl写出来了
- 今天终于把新浪博客中的文章转过来了~~~
- 今天终于将qt-opengl 的一个简单的程序写出来了,
- 终于把cocos3.2 对应CocosStudio的按钮回调写出来了。
- 今天终于沉下心来,把SSH环境搭建的课件做了一下。
- 今天终于把"黄色书"看完了
- 今天终于把ReBar勉强搞掂了
- 今天,我妹妹终于来了
- 终于把SIP搭起来了
- 今天把文章转过来了
- 今天终于把.net下的ubbcode写完了.
- 今天终于把密码记起来了!以后不能再忘。
- 今天终于把程序运行起来了,高兴!
- 今天终于把网络协作学习系统做完了
- 今天我们小组终于把初赛文档搞定了
- 今天终于把iostream 与iostream.h搞明白了
- 今天终于把兴义之窗搞得差不多了?
- 今天终于在CSDN把BLOG给开了~~~
- Android 解决图片大量下载:软引用必须懂4点
- stm8 uart2 串口接收中断协议解码+定时器中断
- JMS之ActiveMQ
- 黑马程序员——IO(2)
- ocp-202
- 今天终于把perl写出来了
- android 4.4删除短信
- Java对象的创建及访问
- UISearchBar 自定义UI
- 初始化(1)--列表初始化和默认初始化
- git简介
- 认识Servlet
- ocp-203
- Java创建Oracle数据库连接池