The problem is that
print is using what is known as the
"indirect object syntax", which requires a complex
lookahead on Perl's part. The result is that complex
operations that return a scalar are not going to do
what you expect.
See the section labelled WARNING in perlobj for details.
As for solutions, you can use the one that you stumbled
on of putting the filehandle into a scalar, the block
syntax suggested by another person which looks like:
print {$self->{_handle}} "string here";
Or you can take a speed hit and use
IO::Handle and then
$self->{_handle}->print("string here");
Note that the last causes a speed hit, and its internal
implementation causes some
issues that
tye has a
complex fix for.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.