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