@ARGV 参数如何只限定一个 请教各位

@ARGV 参数如何只限定一个 请教各位

如下代码,@ARGV包含txt文件,但执行这个程序,默认还是接受标准输入,非要Ctrl+D才能结束。
请问各位,如何使@ARGV只包含txt文件?而不再接受标准输入?谢谢各位!

附:我的目的是 输入一个字符,删除txt文件中匹配这个字符的行。我的想法是输入这个字符后,就结束,而不用Ctrl+D.


#!/usr/bin/perl -w

print "Please input:\n";
chomp (my $input=<>);
@ARGV="txt";
chomp (my $date=`date +%Y%m%d%H%M%S`);
$^I=".$date.bak";
while (<>) {
               s/^($input).*\n//;
               print;
}



QUOTE:
chomp (my $input=<>);
这句会等待ctrl+d结束

引用中内容是错误的。

楼上说的不对,chomp (my $input=<>);  敲回车就结束了。

可以测试如下:

#!/usr/bin/perl -w

print "Please input:\n";
chomp (my $input=<>);
print "$input";

运行结果:
[root@HS-PCTEST-CENTER-01 gaochong]# ./dd
Please input:
aa
aa
[root@HS-PCTEST-CENTER-01 gaochong]#
你不接受输入不得了?

不明白你想干什么
我要的目的很简单:
提示输入一个字符,这个字符去匹配txt文件的每一行,如果匹配上,就把这行删掉(并留个备份文件)

请问我说明白了吗?


QUOTE:
原帖由 gaochong 于 2008-11-13 11:51 发表
楼上说的不对,chomp (my $input=);  敲回车就结束了。

可以测试如下:

#!/usr/bin/perl -w

print "Please input:\n";
chomp (my $input=);
print "$input";

运行结果:
[root@HS-PCTEST-CENTER ...

是说错了。
chomp (my $input=<>);
不需按ctrl+D结束,但标准输入已打开,while前没有关闭。
不知道是不是这么说的。
while (<>) {
               s/^($input).*\n//;
               print;
               last;
}
估计你是在win下运行的,date命令和linux下的结果不同的:win下接受输入……所以你就不停地输入“错误的日期”吧。
请在linux/unix运行你的脚本
没有实现。。。

你运行下看?