1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
/* Test PERLREXX.DLL */
/* Example:
perlrexx.cmd BEGIN {push @INC, 'lib'} use OS2::REXX; REXX_eval "address cmd\n'copyy'";
*/
call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
call SysLoadFuncs
parse arg args
retval = runperl(args)
say 'retval = "'retval'"'
exit 0
addperl: procedure
parse arg perlf
pathname='perlrexx'
r = RxFuncAdd(perlf, pathname, perlf)
say "RxFuncAdd("perlf","pathname") -> "r
return
runperl1: procedure
parse arg perlarg
call addperl('PERL')
call addperl('PERLTERM')
call addperl('PERLEXIT')
call addperl('PERLEVAL')
call addperl('PERLLASTERROR')
signal on syntax name runperl_error
/* signal on error name runperl_error
signal on failure name runperl_error */
say "doing PERLEVAL("perlarg")"
tmp = PERLEVAL(perlarg)
say "PERLEVAL -> '"tmp"'"
signal off syntax
call RxFuncDrop 'PERL'
call RxFuncDrop 'PERLLASTERROR'
call RxFuncDrop 'PERLTERM'
call RxFuncDrop 'PERLEVAL'
call PERLEXIT
call RxFuncDrop 'PERLEXIT'
return pathname ': PERLEVAL('perlarg') =' tmp
runperl: procedure
parse arg perlarg
pathname='perlrexx'
r = RxFuncAdd("PerlExportAll", pathname, "PERLEXPORTALL")
say "RxFuncAdd("'PerlExportAll'","pathname") -> "r
r = PerlExportAll()
say "PerlExportAll() -> "r
signal on syntax name runperl_error
/* signal on error name runperl_error
signal on failure name runperl_error */
say "doing PERLEVAL("perlarg")"
tmp = PERLEVAL(perlarg)
say "PERLEVAL -> '"tmp"'"
address evalperl perlarg
say "Did address evalperl "perlarg
signal off syntax
r = PerlDropAllExit()
/* The following line is not reached... Why? */
say "PerlDropAllExit() -> "r
return pathname ': PERLEVAL('perlarg') =' tmp
runperl_error:
return pathname ': REXX->Perl interface not available; rc="'rc'", .rs="'.rs'", errstr="'errortext(rc)'", perlerr="'PERLLASTERROR()'"'
/* return pathname ': REXX->Perl interface not available; rc="'rc'", .rs="'.rs'", errstr="'errortext(rc)'", perlerr="???"' */
|