#!/usr/bin/perl -w use strict; use warnings; my $logpath = $ARGV[0]; print "logpath : $logpath\n"; print "Name : "; my $name = <>; chomp($name); print "my name is $name\n";
它不会在stdin输入停止.对于任何一个命令行或标准输入都可以正常工作,但不适用于这两者.
任何原因?
my $name = <>;
至
my $name = <STDIN>;
如果@ARGV没有元素,那么钻石操作符将从STDIN读取,但是在您的情况下,由于您通过命令行传递参数,@ARGV不会为空.所以当你使用钻石运算符<>要读取名称,将从命令行中指定名称的文件的第一行读取.