<P>This object function constructs a CSV string from the arguments, returning
success or failure. Failure can result from lack of arguments or an argument
containing an invalid character. Upon success, <A HREF="#item_string"><CODE>string()</CODE></A> can be called to
retrieve the resultant CSV string. Upon failure, the value returned by
<A HREF="#item_string"><CODE>string()</CODE></A> is undefined and <A HREF="#item_error_input"><CODE>error_input()</CODE></A> can be called to retrieve an
<P>Similar to combine, but it expects an array ref as input (not an array!)
and the resulting string is not really created, but immediately written
to the <EM>$io</EM> object, typically an IO handle or any other object that
offers a <EM>print</EM> method. Note, this implies that the following is wrong:</P>
<PRE>
open(FILE, ">whatever");
$status = $csv->print(\*FILE, $columns);</PRE>
<P>The glob <CODE>\*FILE</CODE> is not an object, thus it doesn't have a print
method. The solution is to use an IO::File object or to hide the
glob behind an IO::Wrap object. See <A HREF="../../../IO/File(3).html">the IO::File(3) manpage</A> and <A HREF="../../../IO/Wrap(3).html">the IO::Wrap(3) manpage</A>
for details.</P>
<P>For performance reasons the print method doesn't create a result string.
In particular the <EM>$csv->string()</EM>, <EM>$csv->status()</EM>,
<EM>$csv-</EM>fields()> and <EM>$csv->error_input()</EM> methods are meaningless