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

前端之家收集整理的这篇文章主要介绍了传递命令行参数以及STDIN for Perl脚本的输入?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个Perl脚本,它接受命令行参数和STDIN
#!/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不会为空.所以当你使用钻石运算符<>要读取名称,将从命令行中指定名称文件的第一行读取.

猜你在找的Perl相关文章