is charout. It's line oriented counterpart is lineout. They are both also methods for output objects in object rexx.
\r\n\r\n
Classic REXX:
\r\n\r\n
/* hello.cmd */\r\ncharout('Hello, World!')\r\nlineout('Hello, World!')
\r\n\r\n
has the following output
\r\n
Hello, World!Hello, World\r\n<crlf>
\r\n
\r\n\r\n
Object REXX
\r\n\r\n
.output~charout('Hello, World!')\r\n.output~lineout('Hello, World!')
\r\n\r\n
has the same output.
\r\n\r\n
In general, say is pretty much functionally identical to lineout, but it's an instruction, not a function, which makes it useful in places where lineout is not so useful. It's also good to use if you want your program to be more portable... the implementation of say can be quite different on another hardware platform (like eg mainframes) where a lot of the architecture choices of the PC platform just don't apply.
\r\n\r\n
About the ORexx snippet: sometimes, you want to use the .output object, as it can be redirected quite easily, so that a function or method can be run within a context where .output can be stdout, a serial device, etc. Sometimes, you might want to direct it someplace specific:
\r\n\r\n
.stderr~charout('You borked it up this time, Mr. Bond')
\r\n\r\n
Though it's generally a good idea to keep platform specifics in mind when figuring out how to handle things like that.
--\r\n-------------------------------------------------------------------\r\n* Jack Troughton jake at consultron.ca *\r\n* [link|http://consultron.ca|http://consultron.ca] [link|irc://irc.ecomstation.ca|irc://irc.ecomstation.ca] *\r\n* Laval Qu\ufffdbec Canada [link|news://news.consultron.ca|news://news.consultron.ca] *\r\n-------------------------------------------------------------------