如果我通过子例程调用它,如何在perl中执行shell命令?
例如,我可以在命令行上运行它以获取特定值:
mycert-util --show test.user.myuser_cd
我想在perl子例程中运行此命令并调用它。例如,我的例程是get_auth
,我想打印出get_auth
的值。
代码:
use strict;
use warnings;
#&get_auth;
#get_auth();
print "The value is: get_auth() \n";
sub get_auth
{
$exec=`mycert-util --show test.user.myuser_cd`;
}
答案 0 :(得分:3)
你的问题不是潜艇,而是你怎么称呼它。您不能将子调用放在引号内。下面有一些等效的替代功能。
use feature qw(say);
say "The value is: ", get_auth();
sub get_auth {
return qx(mycert-util --show test.user.myuser_cd);
}
答案 1 :(得分:2)
看起来您可能需要返回$ exec变量然后正确输出:
sub get_auth
{
$exec=`mycert-util --show test.user.myuser_cd`;
return $exec;
}
print "The value is: " . get_auth() . "\n";