2014-02-08 2 views
0

지금은 매우 커지는 펄 스크립트를 작성하고 있습니다.
내 스크립트변수 이름과 그 값을 perl로 가져옵니다.

$filename = "vivek.html"; 
$name = "$0"; 
$lang = "perl"; 
($dynamic_var) = $filecontent =~ /([\w\=\-\ ]+)(?=<)/; 

및 일부 변수가 실행시에 초기화를 예컨대에 대한 해당 값
와 난 그냥 싶어 인쇄 모든 변수 이름을.
출력이 필요합니다 :

$filename==>vivek.html 
$name==>script.pl 
$lang==>perl 
$dynamic_var==>dynamic value 
+1

모든 변수를 해시 요소로 선언하면 각 키/값 쌍을 인쇄하십시오. – Toto

+0

하지만 난 얼마나 많은 변수를 사용하여 각 변수 이름을 검색 할 필요가 모든 변수를 해시 요소로 선언하는 script.for에 사용되는 알고 ... 그래서 어렵다 – vivek

+0

단순히 각 변수 이름을 검색하는 동안 'foreach (keys % vars)'그들 모두를 얻으시겠습니까? 이 외에도 모든 변수를 가져 오는 것은 유형 및 범위 (어휘, 글로벌/패키지 등)에 따라 다릅니다. 가장 좋은 경우에는 기호 테이블과 저수준 처리를해야합니다. 그리고 (글로벌) 스칼라 만 있습니까? – ArtM

답변

2

이 좋은 연습에서 (당신이 당신의 자신의 해시를 사용한다)하지만, 모든 패키지 (전역) 변수를 저장 한 %main:: 해시 볼 수 있으며, 당신이있어 보인다 멀리 그들을 독점적으로 사용,

my %vars; 
BEGIN { 
    @vars{keys %main::} =(); 
} 

# begin of your script 
$filename = "vivek.html"; 
$name = "$0"; 
$lang = "perl"; 
# end of your script 

print "\$$_==>$$_\n" 
    for sort grep { !exists $vars{$_} } keys %main::; 
관련 문제