我有一个叫a.pl的Perl脚本,里面有类似下面的读取命令行输入值的语句:

my $device_name = ;

如果我在b.pl脚本里,用system或是readpipe命令来粘合脚本a.pl,当运行到上面这个语句的时候,命令行会提示输入一个值。

有的时候,比如说自动化脚本测试中,希望能让脚本b.pl自动输入这个值,或者说,自动在b.pl脚本里给a.pl脚本里的变量**$device_name**赋值。

这样,程序就可以不用人工干预,全部自动运行了。

可以在b.pl中,用类似这样的语句来实现这个功能:

system(“echo yes|perl a.pl”);

或是

my @dev_check_result = readpipe(“echo “.$dev_file.” | perl a.pl”);

这样,在调用a.pl时,在命令行提示说要输入一个值给变量**$device_name的时候,就会自动把yes或是$dev_file这个值赋值给a.pl里的$device_name**变量。