# Call

call 控制语句可调用必须由先前的 sub 语句定义的子例程。

语法：

Call name ( [ paramlist ])

参数：

Call 参数

| 参数 | 说明 |
| --- | --- |
| name | 子例程的名称。 |
| paramlist | 实际参数逗号分隔符列表，用以发送至子例程。此列表中每个项目都可为字段名，变量或任意表达式。 |

由一条 call 语句调用的子例程必须由在脚本执行期间更先遇到的 sub 语句定义。

参数会复制到子例程中，此外，如果在 call 语句中的参数是一个变量而非表达式，请重新将其复制到现有子例程中。

限制：

由于该 call 语句是一个控制语句，以分号或换行符结束，因此不能跨越行边界。

示例 1:

`// Example 
 1` `Sub INCR 
 (I,J)`

> `I = I + 
>  1` `Exit Sub 
>  when I < 10` `J = J + 
>  1`

`End Sub` `Call INCR 
 (X,Y)`

示例 2:

`// Example 
 2 - List all QV related files on disk` `sub DoDir 
 (Root)`

> `For Each Ext in 'qvw', 
>  'qvo', 'qvs', 'qvt', 'qvd', 'qvc'`
>
> > `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 ('C:')`