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 劉凱毅 閱讀(1434) 評論(1)  編輯  收藏 所屬分類: perl

          Feedback

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

          主站蜘蛛池模板: 长宁县| 安吉县| 逊克县| 延津县| 江山市| 仙桃市| 麟游县| 江油市| 四川省| 泸西县| 潜江市| 汉源县| 宁化县| 淳安县| 石景山区| 奎屯市| 双流县| 长春市| 商南县| 秭归县| 昭苏县| 泉州市| 柘城县| 南投县| 辽阳县| 墨竹工卡县| 郓城县| 宕昌县| 永和县| 湖口县| 永修县| 竹溪县| 沂源县| 博湖县| 达尔| 镇巴县| 邻水| 巴东县| 闻喜县| 吴堡县| 偃师市|