2015-01-02 6 views
1

는 내가 $$ 변수 역 참조 할 수있는 방법은 이해하지만이 예제에서, 나는 그것이 사용되는지 확인할 수 없습니다입니다 :Perl - 이중 달러 기호 : 어떤 기능을 수행합니까?

opendir (CUST, "D:/opt/customer"); 
foreach $area (grep /^\d\d\d\d$/, readdir CUST) { 
    push @areas, $area; 
    $$area{acc} = shift ; 
    open (AREA_DISP, "<D:/opt/customer/$area/displays/dir.mnu"); 
    while (<AREA_DISP>) { 
    $$area{dir} = $$area{dir} . $_; 
    } 
    close (AREA_DISP); 
    } 
closedir (CUST); 

그것을 사용하는 것이 유일한 다른 곳이 더있다 코드에서 아래로 :

어떤 도움을 주시면 감사하겠습니다.

답변

4

대부분의 사람들은 요즘 $$ area {acc} 대신 $ area -> {acc}라고 쓰고 있습니다.

예 : 내가 당신이라면이 된 숙어를 사용하는 것, 그리고 다소 의심스러운 방법으로 변수를 재사용으로

$ perl -E '$area={ acc=>"some" }; say $$area{acc}; say $area->{acc}' 
some 
some 
$ 

, 나는 그 스크립트를 다시 작성합니다.