# Call

call 제어 문은 앞에 sub 문으로 정의된 서브루틴을 호출합니다.

구문:

Call name ( [ paramlist ])

인수:

인수

| 인수 | 설명 |
| --- | --- |
| name | 서브루틴의 이름입니다. |
| paramlist | 서브루틴으로 전달할 실제 매개 변수의 쉼표로 구분된 목록입니다. 목록의 각 항목은 필드 이름, 변수 또는 임의의 표현식이 될 수 있습니다. |

call 문으로 호출하는 서브루틴은 스크립트 실행 시 초반에 발견되는 sub 문으로 정의되어 있어야 합니다.

매개 변수는 서브루틴으로 복사되며, call 문에 있는 매개 변수가 변수이고 표현식이 아니라면 서브루틴이 종료될 때 다시 역으로 복사됩니다.

제한 사항:

* call 문은 제어 문이고 세미콜론 또는 줄 끝 중 하나로 끝나므로 줄 경계를 넘어가지 말아야 합니다.

* 제어 문(예: `if..then`) 내에서 `Sub..end sub`를 사용하여 서브루틴을 정의하면 동일한 제어 문 내에서만 서브루틴을 호출할 수 있습니다.

이 예는 폴더 및 하위 폴더의 모든 Qlik 관련 파일을 나열하고 테이블에 파일 정보를 저장합니다. 폴더에 대해 Apps라는 이름의 데이터 연결을 만들었다고 가정합니다.

DoDir 서브루틴은 폴더 'lib://Apps'에 대한 참조를 통해 매개 변수로 호출됩니다. 서브루틴 내에는 재귀 호출 `Call DoDir (Dir)`이 있으며 이 재귀 호출을 통해 함수가 하위 폴더에서 재귀적으로 파일을 찾을 수 있습니다.

```
sub DoDir (Root)
   For Each Ext in 'qvw', 'qvo', 'qvs', 'qvt', 'qvd', 'qvc', 'qvf'
      For Each File in filelist (Root&'\*.' &Ext)
          LOAD
             '$(File)' as Name, 
             FileSize( '$(File)' ) as Size, 
             FileTime( '$(File)' ) as FileTime
          autogenerate 1;
      Next File
   Next Ext   
   For Each Dir in dirlist (Root&'\*' )
      Call DoDir (Dir)
   Next Dir
End Sub

Call DoDir ('lib://Apps')
```