Re: [請益] open() 的限制?

看板Perl作者 (Art of Life)時間19年前 (2006/06/07 00:16), 編輯推噓3(3012)
留言15則, 3人參與, 最新討論串2/3 (看更多)
※ 引述《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)

06/07 00:47, , 1F
open 要讀取的話 open("filename") 就可以了吧
06/07 00:47, 1F

06/07 00:48, , 2F
喔??還有這招??..感謝!!
06/07 00:48, 2F

06/07 00:48, , 3F
是有要把這個 "檔案" 做特殊處理才需要pipe或者redirect
06/07 00:48, 3F

06/07 00:49, , 4F
不過感覺上這個case似乎要對內容做處理...
06/07 00:49, 4F

06/07 00:50, , 5F
感覺上這個程式只是切一部份程式碼出來...
06/07 00:50, 5F

06/07 01:27, , 6F
我是看..activeperl的doc裡寫的...
06/07 01:27, 6F

06/07 01:31, , 7F
這只是一部份程式碼...我切出來做test的...
06/07 01:31, 7F

06/07 01:31, , 8F
還有..我用了你的程式碼去跑一次...結果預設的檔案並沒有如
06/07 01:31, 8F

06/07 01:32, , 9F
跑出來.....
06/07 01:32, 9F

06/07 01:32, , 10F
之前再做test..有用變數$i =1去做檔名....
06/07 01:32, 10F

06/07 01:33, , 11F
用這個方法可以確定跑得出來...所以我才有疑問...
06/07 01:33, 11F

06/07 01:33, , 12F
我在猜是不是perl在直譯的時候有先去對開檔的動作
06/07 01:33, 12F

06/07 01:34, , 13F
跑過一次..向前面變數的用法..perl直譯器可以確定有實際的檔
06/07 01:34, 13F

06/07 01:35, , 14F
名..而用開檔的動作去assign變數...或許perl不吃這套吧..
06/07 01:35, 14F

06/07 01:36, , 15F
不過這只是我猜測....還是要請教各位..謝謝!!
06/07 01:36, 15F
文章代碼(AID): #14XQfxtf (Perl)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
文章代碼(AID): #14XQfxtf (Perl)