Mam program Perl, który przechowuje wyrażenia regularne w plikach konfiguracyjnych. Są one w formie:Podwójna interpolacja wyrażeń regularnych w Perlu
regex = ^/d+$
indziej, regex pobiera analizowany z pliku i przechowywane w zmiennej - $regex
. Następnie używam zmiennej podczas sprawdzania wyrażeń regularnych, np.
$lValid = ($valuetocheck =~ /$regex/);
Chcę móc uwzględnić zmienne perl w pliku konfiguracyjnym, np.
regex = ^\d+$stored_regex$
Ale nie mogę się dowiedzieć, jak to zrobić.
Gdy wyrazy regularne są analizowane przez Perla, interpretowane są dwa razy. Najpierw zmienne są rozwijane, a następnie przetwarzane jest wyrażenie regularne.
Potrzebuję trzystopniowego procesu: Najpierw interpoluj $regex
, następnie interpoluj zmienne, które zawiera, a następnie przeanalizuj wynikowe wyrażenie regularne. Obie pierwsze interpolacje muszą mieć "świadomość regularną". na przykład powinni wiedzieć, że ciąg zawiera $
jako kotwica itp ...
Jakieś pomysły?
To eleganckie rozwiązanie. –