Skynet

---------- ---------- 我的新 blog : liukaiyi.cublog.cn ---------- ----------

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  112 Posts :: 1 Stories :: 49 Comments :: 0 Trackbacks
比如 日志,和shell运行
#!/bin/perl -w
use Time::Local;

my $log_input_file="~/log";
sub set_log_input_file{
  
$log_input_file=$_[0];
}


#&perl_log("tt","/home/xj_liukaiyi/log");
sub perl_log{
  
my $log_msg=shift @_;
  
print $log_msg,"\n";
  
system 'ttmp1=$(date +%Y-%k-%d);ttmp2=$(date +%M:%S);echo "$ttmp1 $ttmp2:'."$log_msg".'" >>'.$log_input_file;
}

#&system_util("xls -l","~/log");
sub system_util{
  
my $comm=shift @_;
  
my @return=system $comm;
  
if ( $return[(@return-1)] == 0 ) { 
     
&perl_log("[success]".$comm,$log_input_file);
  }
else{
     
&perl_log("[error]".$comm,$log_input_file);
  }
  
return $return[(@return-1)];
}

1;

excel 读取util 
require("/home/xj_liukaiyi/src/perl/excel/excelUtil.pl");&parse_excel("2w.xls","歌曲列表","&read_wlh);
#!/bin/perl -w
use Spreadsheet::ParseExcel;
use Spreadsheet::ParseExcel::FmtUnicode; 
use Encode;
use Unicode::Map();
my $Map = new Unicode::Map("GB2312");


my $excelCODE='gb2312';
my $coslCODE='utf8';

my %parseCache ;
my %writeCache ;

my $oFmtJ = Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map =>$excelCODE); 
my $oExcel = new Spreadsheet::ParseExcel;



#
#&parse_excel("all4.xls","乐扑","&read_lp); 
# sub read_lp{  $_[1 .. 2.3  ] }
sub parse_excel{
 
my $sExcelName=shift;
 
my $sSheetName=shift;
 
my $action_fun=shift;
 
 
my($iR, $iC, $oWkS,$oWkC);
 
#开启 excel
 my $oBook = $oExcel->Parse($sExcelName,$oFmtJ);
 
#根据 sheet 名称匹配 
 for(my $iSheet=0$iSheet < $oBook->{SheetCount} ; $iSheet++){
    
my $t_oWkS = $oBook->{Worksheet}[$iSheet];
    
my $sWkSName=encode($coslCODE,decode($excelCODE,$t_oWkS->{Name} ));
    
if($sWkSName=~/$sSheetName/){
      
$oWkS=$t_oWkS;
      
last;
   }
 }


 
for(my $iR = $oWkS->{MinRow} ;
     
defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ;
     
$iR++){
     
my @arr_row;
     
for(my $iC = $oWkS->{MinCol} ;
         
defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ;
         
$iC++){
       
$oWkC=$oWkS->{Cells}[$iR][$iC];
       
my $col_value="";
           
$col_value=encode($coslCODE,decode($excelCODE,$oWkC->Value) ) if ($oWkC) ;
           
push(@arr_row,$col_value);
         }
      
push(@arr_row,$iR);
     
$action_fun->(@arr_row);
    }
}

#使用 demo
find . -maxdepth 1 -name "*xls" -exec perl -'
require("/home/xj_liukaiyi/src/perl/excel/excelUtil.pl");
my $file=$ARGV[0];
sub myRead{
  my $str="";
  foreach$tmp(@_){
    $str+"$tmp\t";
  }
  system "echo $str >> $file.data";
}
&parse_excel("$file",0,\&myRead);
print "$file\n";
' {} \;





整理 www.blogjava.net/Good-Game
posted on 2009-03-17 13:49 刘凯毅 阅读(1413) 评论(1)  编辑  收藏 所属分类: perl

Feedback

# re: perl 一些有用的 util 2009-03-17 16:34 胜客
learn  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: