-2
A
回答
3
Here is a great summary of why it's a bad idea to use a variable as a variable name。
所以我不會告訴你如何去做,因爲這就像教一個小孩如何加載槍一樣。
您需要的是hash
。哈希是perl數據結構,它們是鍵值對。
#!/usr/bin/env perl
use strict;
use warnings;
my %stuff;
$stuff{'b'} = 10;
my $target = 'b';
print $stuff{$target};
+0
非常感謝.. :-) – sas
-3
我不會在我自己的代碼中親自使用這種方法,但考慮到您提出的問題,您可以使用eval
來評估一個變量的字符串值作爲另一個變量的Perl變量名稱。
perl -e '$a='b'; $b=20; print eval("\$$a"), "\n";'
20
但是,這不是一個很好的做事方式。如果你解釋了爲什麼你希望能夠根據另一個變量中的字符串名稱從一個變量中獲取值的目的,也許你的問題會得到更好的答案。
1
你正在做的事情叫做symbolic reference。在版本5之前,這是Perl使用引用的唯一方法。如今,它被認爲已被棄用,應該避免。改爲使用散列。我只是提供一個例子,所以你可以在任何你必須維護和消除的代碼中發現它。
符號參考僅適用於動態變量,即變量聲明爲our
或use vars。另外請注意,您必須關閉use strict refs
才能運行。
use strict;
use warnings;
my $x = 'y';
our $y = 10;
{
no strict qw(refs);
print ${$x}, "\n";
}
順便說一句,你也應該避免使用$a
和$b
。它們被Perl的sort
使用,並可能導致混淆。
相關問題
- 1. 如何從DB2中的存儲過程中獲取變量值?
- 2. 如何在變量中存儲match.groups()值
- 3. 使用變量值來獲取存儲在其他變量中的值
- 4. 如何獲取Perl正則表達式匹配變量的值與索引存儲在另一個變量?
- 5. PHP/MySQLi - 如何獲取一行的值並存儲在變量中?
- 6. linq如何從變量中獲取值
- 7. Perl DBI與MySQL:如何從存儲過程獲取返回值?
- 8. wp.customize,從設置中獲取值並存儲在變量中
- 9. 如何從EditText字段獲取值並將其存儲在雙變量中?
- 10. 如何在Perl中使用變量的值作爲變量名?
- 11. 存儲值變量
- 12. 在Perl eval中捕獲變量賦值
- 13. 如何獲取str變量的值?
- 14. 如何獲取HtmlControl變量的值?
- 15. 獲取AJAX值並存儲在一個php變量中
- 16. 如何將awk中的值存儲在Python變量中
- 17. 在bash中,如何將返回值存儲在變量中?
- 18. 如何存儲在JavaScript變量中點擊的按鈕的值?
- 19. 如何將函數的返回值存儲在變量中?
- 20. 如何在本地宏中存儲變量的可能值?
- 21. Android:如何通過編碼在Strings.xml中存儲變量的值
- 22. 如何將函數的返回值存儲在變量中?
- 23. 如何在變量中存儲來自grep輸出的值
- 24. 批處理:獲取另一個變量的值中存在的變量的值
- 25. 不存儲變量的值
- 26. 如何獲取PHP變量數組值?
- 27. 如何獲取JSON值給變量?
- 28. 如何將變量名賦值給變量以獲取變量的值?
- 29. 如何在C++中存儲從矢量`pop_back()`獲得的值?
- 30. 如何從Perl中的多行變量的RegEx操作獲取值的數組?
'$ a'是一個(標量)_variable_,它具有字符串'b'作爲它的值(用引號''b''編碼)。你詢問的這個'$ b'會是另外一些完全不相關的_variable_。 – zdim
@zdim好的..有沒有辦法做到這一點.. – sas
但是,做什麼?你說「_fetch value'$ b'_」 - 你是什麼意思?沒有值'$ b' - 這將是一些其他變量。你的代碼'$ a ='b''裏面沒有「_value'$ b'_」。 – zdim