2012-11-02 177 views
2

我有一個Perl腳本(abc.pl)和2個配置文件中var.plPerl的變量的值作爲另一個變量名

(一個var.pl和一個的config.txt)

現在

$admin_userid = "admin"; 
$guest_userid = "guest"; 
中的config.txt

- 這個擁有用戶的價值 - 在abc.pl是admin或客人

user=admin/guest 
require var.pl 

$get_user = admin or guest (get this value from config.txt) 
**$myfinal_userid = ??** 

如果用戶在config.txt中是admin且guest是guest,我希望myfinal_user_id的值爲admin。

ie基於$ get_user的值我想要userid的值 - $ {$ get_user}。「_ userid」 eg:if config.txt has user = admin,$ get_user = admin並且我希望$ myfinal_userid = $ admin_userid。類似的客人。這必須是動態的。

最後,我想要的是,從config.txt知道用戶並基於它,從var.pl獲取用戶標識並將其存儲在myfinal_userid中。

讓我知道如何在perl中實現這個功能?

+0

你解釋不清楚。我沒有得到你想要的東西。請嘗試更清楚地解釋它。你最終想做什麼?同時告訴我們下一步。我認爲您的整體流程可以優化,以避免這個問題。 – simbabque

+0

最後,我想要的是,從config.txt知道用戶並基於它,從var.pl獲取用戶標識並將其存儲在myfinal_userid中。 –

+0

每次讀取「* variable variable name *」之類的東西時,散列可以解決問題。 – memowe

回答

5

使用哈希存儲的ID:

my %id = (admin => 'admin', 
      guest => 'guest', 
     ); 

my $get_user = 'admin'; # Read this from the config. 
my $final_id = $id{$get_user}; 

my $other_user = 'guest'; 
my $another_final_id = $id{$other_user}; 

print $final_id, "\n", $another_final_id, "\n"; 
+0

謝謝:)解決了我的目的 –

相關問題