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.aygfsteel.com/Good-Game
          posted on 2009-03-17 13:49 劉凱毅 閱讀(1438) 評論(1)  編輯  收藏 所屬分類: perl

          Feedback

          # re: perl 一些有用的 util 2009-03-17 16:34 勝客
          learn  回復  更多評論
            

          主站蜘蛛池模板: 临安市| 阿克苏市| 临江市| 通州区| 湘阴县| 锡林浩特市| 太原市| 宜春市| 宁乡县| 长沙县| 遂宁市| 自贡市| 施甸县| 梓潼县| 昌平区| 兴义市| 阳朔县| 庐江县| 道真| 临潭县| 乌鲁木齐市| 措美县| 临桂县| 额尔古纳市| 乐亭县| 汉寿县| 葵青区| 宁化县| 疏勒县| 长乐市| 宾川县| 乌拉特后旗| 城固县| 历史| 东明县| 澄迈县| 罗江县| 榕江县| 陇南市| 安西县| 镇雄县|