作者k82817 (ken)
看板Perl
标题[问题] 输入算符<>
时间Fri Oct 7 10:58:50 2016
各位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://webptt.com/cn.aspx?n=bbs/Perl/M.1475809133.A.D4B.html
※ 编辑: k82817 (125.227.12.127), 10/07/2016 11:08:09
1F:→ rxiang: 你使用 perl string.pl file 看看 10/07 13:00
2F:推 abliou: 你的执行方式还蛮特殊的,可以说一下你怎麽执行perl? 10/07 13:00
3F:→ k82817: 我是用Padre里面的run script 10/07 13:07
4F:→ k82817: rx大 还是不行耶,她只会重复我打进去的命令 10/07 13:25
5F:推 abliou: 原作可能有点误会一楼的意思,不过如果你用run script我想 10/07 13:45
6F:→ abliou: 九成是因为後面的参数没有进去,因为你说的症状确实很像 10/07 13:46
8F:→ abliou: 所以建议你如果要CMD传参数进去,最好的测试方法就是开CMD 10/07 13:50
9F:→ abliou: 不要用内建的run script (除非你会调整) 10/07 13:50
10F:→ flu: 回覆的各位大大请注意看原po 22~24行的原文 10/07 16:08
11F:→ flu: 再加上他图中两行两行一样的内容,推测原po是在cmd等待stdin 10/07 16:08
12F:→ flu: 的时候打入了大大们以为是用命令列引数传入的字串 10/07 16:09
13F:→ flu: ( 上面的cmd改成perl.exe会准确一点 ) 10/07 16:16
14F:推 abliou: 是啦!!就是f大说的那意思! 10/07 16:53
15F:→ k82817: 所以说这个范例的程式码打出来的话,功能并不是我想的那 10/07 20:37
16F:→ k82817: 我原本以为命名提示字元上会显示TESTTXT的内容 10/07 20:40
17F:→ rxiang: 可以显示阿 10/07 21:03
20F:→ k82817: 我後来用Parde里面的Run command就可以顺利读到档案了 10/07 21:11
21F:→ rxiang: 建议别太依赖IDE 用cmd或是Linux里也内建Perl可用CLI处理 10/07 21:13
22F:→ k82817: 谢谢RX大 我想大概是因为用run script的关系所以才没办法 10/07 21:17
23F:→ k82817: 原来如此 我刚刚用了RX大的方法也成功叫出test.txt档案 10/07 21:20
24F:→ k82817: 因为我长期写程式都是使用IDE 所以才会搞不清楚怎麽 10/07 21:21
25F:→ k82817: 怎麽使用command去呼叫程式 10/07 21:22
26F:→ rxiang: 建议学CLI 可避免你下次学新语言又要重学一个IDE的使用 10/07 21:24
27F:→ k82817: 好喔 10/07 23:01