加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

传递命令行参数以及STDIN for Perl脚本的输入?

发布时间:2020-12-15 22:03:10 所属栏目:大数据 来源:网络整理
导读:我有一个Perl脚本,它接受命令行参数和STDIN #!/usr/bin/perl -wuse strict;use warnings;my $logpath = $ARGV[0];print "logpath : $logpathn";print "Name : ";my $name = ;chomp($name);print "my name is $namen"; 它不会在stdin输入停止. 对于任何一个
我有一个Perl脚本,它接受命令行参数和STDIN
#!/usr/bin/perl -w
use strict;
use warnings;

my $logpath = $ARGV[0];
print "logpath : $logpathn";

print "Name : ";
my $name = <>;
chomp($name);
print "my name is $namen";

它不会在stdin输入停止.
对于任何一个命令行或标准输入都可以正常工作,但不适用于这两者.

任何原因?

解决方法

更改
my $name = <>;

my $name = <STDIN>;

如果@ARGV没有元素,那么钻石操作符将从STDIN读取,但是在您的情况下,由于您通过命令行传递参数,@ARGV不会为空.所以当你使用钻石运算符<>要读取名称,将从命令行中指定名称的文件的第一行读取.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读