看板 Perl 關於我們 聯絡資訊
※ 引述《akoba ()》之銘言: : 我從input檔讀入data,以data當作output檔的檔名 : 可是我遇到了問題,output檔一直無法建立 : 想請教是什麼問題 : 以下是code... : open(Input,"<","test"); : $Line = <Input>; : ($Contig_gi,$Est_gi) = split(",",$Line); : $Path = "C:/Perl/bin/Project/temp/$EST_ID.txt"; : open(Output,">",$Path) or die; : print Output "hello"; 1. open file,">PATH+FILENAME"; 有網友說你的寫法也行..說真的你open的語法我是第一次看過...(羞愧...) 可否請教您語法參考何處?? 2. 你後面沒有close的動作...也就是少一個存檔的步驟.... 有網友有提到.. 你何不先試看看?? 3. 感覺上你寫的語法變數設定有點多...以前還在用VB的時候這麼寫看起來還不會這麼吃力 但現在perl用久了整個人就被perl養壞了...也養懶了...(不知道是好是壞...) 建議你變數設定少一點..一方面方便維護...一方面debug也輕鬆許多... 4. 所以我會這麼改寫你的東西....(有錯或者有更縮短的寫法請各位大佬指正..拜託..) open Input,"<test"; ($Contig_gi,$Est_gi) = split(",",<Input>); open Output,">C:/Perl/bin/Project/temp/$EST_ID.txt" ; print Output "hello"; close Input,Output ; 我相信會有更好更簡潔的寫法.... 這段程式碼中有一些匪夷所思的部份寫法..似乎是為了寫給迴圈用的.. 所以有網友猜這不是你全部的程式碼.... 倘若確定就是這幾行不會用的迴圈...那這些動作五行應該就能解決(估計..) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.166.136.76 ※ 編輯: abliou 來自: 218.166.136.76 (06/07 00:45)
randylau:open 要讀取的話 open("filename") 就可以了吧 06/07 00:47
abliou:喔??還有這招??..感謝!! 06/07 00:48
randylau:是有要把這個 "檔案" 做特殊處理才需要pipe或者redirect 06/07 00:48
abliou:不過感覺上這個case似乎要對內容做處理... 06/07 00:49
abliou:感覺上這個程式只是切一部份程式碼出來... 06/07 00:50
akoba:我是看..activeperl的doc裡寫的... 06/07 01:27
akoba:這只是一部份程式碼...我切出來做test的... 06/07 01:31
akoba:還有..我用了你的程式碼去跑一次...結果預設的檔案並沒有如 06/07 01:31
akoba:跑出來..... 06/07 01:32
akoba:之前再做test..有用變數$i =1去做檔名.... 06/07 01:32
akoba:用這個方法可以確定跑得出來...所以我才有疑問... 06/07 01:33
akoba:我在猜是不是perl在直譯的時候有先去對開檔的動作 06/07 01:33
akoba:跑過一次..向前面變數的用法..perl直譯器可以確定有實際的檔 06/07 01:34
akoba:名..而用開檔的動作去assign變數...或許perl不吃這套吧.. 06/07 01:35
akoba:不過這只是我猜測....還是要請教各位..謝謝!! 06/07 01:36