[問題] 輸入算符<>

看板Perl作者 (ken)時間8年前 (2016/10/07 10:58), 8年前編輯推噓3(3024)
留言27則, 4人參與, 最新討論串1/1
各位PERL版的大大,大家好 小弟在一個禮拜前剛開始接觸PERL這個程式語言 目前是透過看書+網路自學的方式 在看PERL學習手冊的第六章_基本IO時 有一段再介紹輸入算符,以下為原文 ===================================== 例如,有個程式叫做kitty,其內容如下 #!/usr/bin/perl while(<>){ print $_;} 然後我門執行 kitty file1 file2 file3 此時kitty會一行行地讀入file1的內容,接著file2 file3,直到file3的最後一行讀完, <>會傳入undef的內容,跳出迴圈。 ======================================= 這段話的意思應該是在執行程式後,在Command Line中打入kitty file1 file2 file3後 程式會顯示出file1,file2和file3的內容對吧? 可是我在實際測試時,卻只會重複我的輸入內容,像是這樣 http://imgur.com/a/xUZ0N 完全不會顯示test.txt的內容阿 可是如果我用open()的方式就能夠順利開啟檔案 例如: open(open_file,"test.txt"); while(<open_file>) { print $_;} 難道不能透過command line去指定想要開起哪個檔案嗎? 電腦是用win7,開發環境用Padre,the Perl IDE -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.12.127 ※ 文章網址: https://www.ptt.cc/bbs/Perl/M.1475809133.A.D4B.html ※ 編輯: k82817 (125.227.12.127), 10/07/2016 11:08:09

10/07 13:00, , 1F
你使用 perl string.pl file 看看
10/07 13:00, 1F

10/07 13:00, , 2F
你的執行方式還蠻特殊的,可以說一下你怎麼執行perl?
10/07 13:00, 2F

10/07 13:07, , 3F
我是用Padre裡面的run script
10/07 13:07, 3F

10/07 13:25, , 4F
rx大 還是不行耶,她只會重複我打進去的命令
10/07 13:25, 4F

10/07 13:45, , 5F
原作可能有點誤會一樓的意思,不過如果你用run script我想
10/07 13:45, 5F

10/07 13:46, , 6F
九成是因為後面的參數沒有進去,因為你說的症狀確實很像
10/07 13:46, 6F

10/07 13:49, , 7F
我也可以重複你說的症狀 http://imgur.com/a/kCHNM
10/07 13:49, 7F

10/07 13:50, , 8F
所以建議你如果要CMD傳參數進去,最好的測試方法就是開CMD
10/07 13:50, 8F

10/07 13:50, , 9F
不要用內建的run script (除非你會調整)
10/07 13:50, 9F

10/07 16:08, , 10F
回覆的各位大大請注意看原po 22~24行的原文
10/07 16:08, 10F

10/07 16:08, , 11F
再加上他圖中兩行兩行一樣的內容,推測原po是在cmd等待stdin
10/07 16:08, 11F

10/07 16:09, , 12F
的時候打入了大大們以為是用命令列引數傳入的字串
10/07 16:09, 12F

10/07 16:16, , 13F
( 上面的cmd改成perl.exe會準確一點 )
10/07 16:16, 13F

10/07 16:53, , 14F
是啦!!就是f大說的那意思!
10/07 16:53, 14F

10/07 20:37, , 15F
所以說這個範例的程式碼打出來的話,功能並不是我想的那
10/07 20:37, 15F

10/07 20:40, , 16F
我原本以為命名提示字元上會顯示TESTTXT的內容
10/07 20:40, 16F

10/07 21:03, , 17F
可以顯示阿
10/07 21:03, 17F

10/07 21:09, , 18F
10/07 21:09, 18F

10/07 21:10, , 19F
https://goo.gl/4igQG9 我幫你用cmd印出結果
10/07 21:10, 19F

10/07 21:11, , 20F
我後來用Parde裡面的Run command就可以順利讀到檔案了
10/07 21:11, 20F

10/07 21:13, , 21F
建議別太依賴IDE 用cmd或是Linux裡也內建Perl可用CLI處理
10/07 21:13, 21F

10/07 21:17, , 22F
謝謝RX大 我想大概是因為用run script的關係所以才沒辦法
10/07 21:17, 22F

10/07 21:20, , 23F
原來如此 我剛剛用了RX大的方法也成功叫出test.txt檔案
10/07 21:20, 23F

10/07 21:21, , 24F
因為我長期寫程式都是使用IDE 所以才會搞不清楚怎麼
10/07 21:21, 24F

10/07 21:22, , 25F
怎麼使用command去呼叫程式
10/07 21:22, 25F

10/07 21:24, , 26F
建議學CLI 可避免妳下次學新語言又要重學一個IDE的使用
10/07 21:24, 26F

10/07 23:01, , 27F
好喔
10/07 23:01, 27F
文章代碼(AID): #1NzmzjrB (Perl)
文章代碼(AID): #1NzmzjrB (Perl)