如何从makefile获取.pm/xml的值



在.pm文件中,我有一个hash %DIFF_VARIABLES,并且想提取 $DIFF_VARIABLES{'MAIN'}{'value'}的值。

我想从makefile执行此操作。

我正在用makefile

尝试此操作
MY_VAR := ($shell perl -Mconfig -e "$DIFF_VARIABLES{'MAIN'}{'value'}" /home/my_path/TEST_MODULE_1.pm)

但是它不起作用。

我尝试了不同的方法,但我认为我犯了一个错误。


基于下面的建议,我尝试了一下,但仍然对我不起作用。所以这就是我所做的。我创建了一个单独的perl文件,其中放置了正在从Perl模块中寻找所需值的代码。现在,在makefile中,我执行了perl文件

但仍然无法正常工作……

在makefile中,这是我所做的 -

// comment --Lets say VAR_1's value came as 2.
VAR_1 = $(shell perl ./my_new_perl_file.pl) export VAR_1
ifeq ($(VAR_1), 1) ...do task1 else ..do task2 endif

但是它无法正常工作...如果我明确定义了var_1 = 1在makefile的顶部,那么它正在工作...

有什么建议吗?请..

您需要 print值,以便将其传递到您的呼叫过程中。这是一个非常简单的软件包:

package Value;
our %DIFF_VARIABLES = (
  MAIN => { value => 'foo' },
);
1;

要在外壳中打印该值,我们可以使用这样的代码:

$ perl -MValue -E'say $Value::DIFF_VARIABLES{MAIN}{value}'
foo

我们可以将其分配给类似的壳变量:

$ VALUE=`perl -MValue -E'say $Value::DIFF_VARIABLES{MAIN}{value}'`
$ echo $VALUE
foo

,您可能可以在此基础上(使用$(shell ...)(在您的makefile中做类似的事情。

最新更新