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