2015-01-29 6 views
0

어떻게 배열에 저장된 값에서 perl의 스칼라 변수를 정의 할 수 있습니까? 의 내가 배열과 같이 있다고 가정 해 봅시다 :이 코드 스칼라 변수를 생성 할 Perl, 배열에서 스칼라 변수 정의

my @parameter_list = ("admin_name", "admin_pass", "customer_id", "email", "domains", "subdomains", "aliases", "emails", "ftps", "sqldbs", "sqlusers", "space"); 

이 배열 중. 어떻게해야 할지를 알 수 없었습니다 :

foreach (@parameter_list) { my \$("test"); } 
+3

'XY 문제'에 대한 공식적인 응답은 * 왜 * 그런 일을하고 싶습니다. –

+0

이 매개 변수 목록을 코드의 다른 위치에서 다시 사용하거나 다시 작성할 수 있습니다. – Johniboy

+1

은 해시에 넣어야하는 것처럼 들리지만 이름으로 호출 할 수 있습니다. –

답변

4

변수 이름을 변수로 호출 할 수있게하려는 것 같습니다. 색인이 아닌 이름으로 목록에 액세스 할 수있는 해시를 만들 수 있습니다. 아래 코드는 매개 변수 이름 배열에서 해시를 만드는 방법을 보여줍니다.

use strict; 
use warnings; 

my @parameter_list = ("admin_name", "admin_pass", "customer_id", "email", "domains", "subdomains", "aliases", "emails", "ftps", "sqldbs", "sqlusers", "space"); 
my %parameters; 

foreach my $parameter (@parameter_list){ 
     $parameters{$parameter} = undef; 
} 

$parameters{'admin_name'}='scott'; 
$parameters{'admin_pass'}='tiger'; 

print "DB login: $parameters{'admin_name'}/$parameters{'admin_pass'}\n"; 

이 설정없는 값 매개 변수 이름과 해시를 생성합니다

DB login: scott/tiger 

OUTPUT. 그런 다음 매개 변수의 이름을 지정하여 값을 설정할 수 있습니다. 마찬가지로 매개 변수의 이름을 지정하여 변수의 값에 액세스 할 수 있습니다.

지도와 같은 방법으로이 작업을 수행 할 수있는 다른 방법이 있지만 간단하게 유지하기 위해 남겨 두었습니다.

바라기를이 문제는 당신이 달성하려고 시도했던 질문에서 분명히 분명하지 않습니다.

+0

고맙습니다. – Johniboy

+0

이 질문에 대한 답변은 대답을 수락하십시오. 감사. –