如何在perl子例程中执行shell命令?

时间:2011-08-22 22:36:09

标签: perl

如果我通过子例程调用它,如何在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`; 
}

2 个答案:

答案 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";