[問題] 關於glob

看板Perl作者 (薰)時間18年前 (2007/07/11 10:07), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
又來問問題啦~~~這次是已經有找到檔案裡面的內容, 卻沒有辦法對內容作處理,我的表達能力不好,貼出程式碼看看比較好 這是我第一種寫法, #!usr/bin/perl chdir ("c:\\Perl\\csv"); @mutifile=glob("*.csv"); foreach(@mutifile) { open(FILE,$_); @file=<FILE>; print @file; close(FILE); } open f,">c:\\test\\0710.txt"; foreach $FOUND_STAGE(@file) { if ($FOUND_STAGE=~/Stage_No/) { $flag=1 ; @array=split/,/,$FOUND_STAGE; $first = $array[2] if $array[1]=~/Stage_No/ ; next ; } if ($FOUND_STAGE=~/^\s/){$flag=0 ; next; } @array=split/,/,$FOUND_STAGE ; next if $array[1]=~/Start_Date/; print f "$array[1] $array[2] $array[5] $array[6]\n" if $flag==1 ; } close f; 後來我有用find試著寫 use File::Find; find(\&wanted,'c:\\Perl\\csv',"c:\\Perl\\lib"); sub wanted{ if(/.csv/){ open(FILE,"$File::Find::name"); H:while(@file=<FILE>){ open f,">>c:\\test\\0711.txt"; foreach $cycle{ foreach $FOUND_STAGE(@file) { if ($FOUND_STAGE=~/Stage_No/) { $flag=1 ; @array=split/,/,$FOUND_STAGE; $first = $array[2] if $array[1]=~/Stage_No/ ; next ; } if ($FOUND_STAGE=~/^\s/){$flag=0 ; next; } @array=split/,/,$FOUND_STAGE ; next if $array[1]=~/Start_Date/; if ($flag==1){ print f "$array[1] $array[2] $array[5] $array[6]\n" ; } } } } } close f; 都一樣把資料放在@file 也都有讀到,我有print過 但是就是他只對一個檔案作處理 沒有辦法處理全部的 還有每個csv的檔案都有時間,要怎麼把他印在每個處理過後資料的開頭? 謝謝指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.65.55.161
文章代碼(AID): #16b3jGRA (Perl)
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 3 篇):
文章代碼(AID): #16b3jGRA (Perl)