2014-11-07 5 views
-3

Я использую Perl DBI для доступа к некоторым полям базы данных MySQL. У меня есть поле, содержащее текст и некоторые переменные Perl. Переменные Perl не интерпретируются как переменные. Есть ли способ как-то пометить переменные в поле MySQL, чтобы они интерпретировались в Perl?Поле базы данных MySQL с переменными Perl

Спасибо!

+1

вы можете показать нам пример? – ysth

ответ

1

Нет, нет возможности «разметки» содержимого столбца (поля) MySQL, чтобы заставить Perl оценивать содержимое текстовой строки, содержащей имена переменных.

Эта проблема не имеет ничего общего с MySQL.

Это описано в FAQ по Perl. How can I expand variables in text strings?

В качестве примера, строка, содержащая в себе две скалярные переменные Perl.

$string = 'Say hello to $foo and $bar'; 

(Эта строка литерал в одинарных кавычках, так что $ Foo и $ бар не интерпретируются как переменные, это только символы в символьной строке.)

Но я хочу, чтобы расширить $foo и $bar к значениям переменных. Скажем, у меня есть эти переменные определены:

my $foo = 'Fred'; 
my $bar = 'Barney'; 

Один из способов я могу получить $foo и $bar в текстовой строке заменены значениями переменных использовать оператор подстановки и двойной /e флаг.

Первый /e оценивает $1 на замену и превращает его в $foo.

/e Второй начинается с $foo и заменяет его значение переменной $foo, так $foo заменяется 'Fred'

$string =~ s/(\$\w+)/$1/eeg; # 'Say hello to Fred and Barney' 
Смежные вопросы