In einer .pm Datei habe ich einen Hash %DIFF_VARIABLES
und möchte den Wert von $DIFF_VARIABLES{'MAIN'}{'value'}
extrahieren.Wie bekomme ich den Wert von .pm/xml von Makefile
Ich möchte dies von Makefile ausführen.
Ich versuche, dies in der Datei Makefile
MY_VAR := ($shell perl -Mconfig -e "$DIFF_VARIABLES{'MAIN'}{'value'}" /home/my_path/TEST_MODULE_1.pm)
Aber es funktioniert nicht.
Ich habe verschiedene Möglichkeiten ausprobiert, aber ich glaube, ich mache einen Fehler.
Basierend auf Below-Vorschlag habe ich versucht, diese, aber für mich immer noch daran, ihre nicht .. hier so ist das, was ich tat. Ich habe eine separate Perl-Datei erstellt, in der ich den Code, der den gewünschten Wert sucht, aus dem PERL-Modul platziert habe. Nun, in Makefile ausführen ich, dass Perl-Datei
Aber noch ist es nicht funktioniert ......
in Makefile hier ist das, was ich tat -
// 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
Aber es funktioniert nicht. .. Wenn ich VAR_1 = 1 oben im Makefile explizit definiere, dann funktioniert es ...
Irgendwelche Vorschläge? pls ..
Ist der '% DIFF_VARIABLES' Hash in Ihrem Modul eine lexikalische Variable (definiert mit' my') oder eine Paketvariable (definiert mit 'our' oder' use vars')? –
Es ist Paketvariable - definiert mit 'our' –
Sie müssen den Inhalt von 'TEST_MODULE_1.pm' anzeigen. Was Sie geschrieben haben, übergibt die .pm-Datei als Eingabe für den Perl-Befehl, aber sie wird nie gelesen. Sie müssen * das * Modul ausführen, damit der Hash einen Wert erhält. – Borodin