Your problem is context.
print operates in interpolative context so $capsule returns It's a widget! but ne operates in boolean context so $capsule returns something like Object::Capsule=SCALAR(0x1234567).
I ran three tests:
- Your code as is
- Changed $capsule ne ... to "$capsule" ne ... (eq also)
- Changed $capsule ne ... to $$capsule ne ... (eq also)
Here's the output using Perl 5.6, Cygwin and Win98:
[ ~/tmp ] $ perl overload_context
# capsule overload eval-ing : ${$_[0]} eq $_[1]
Segmentation fault (core dumped)
[ ~/tmp ] $ perl overload_context
# result of comparison: true
# result of comparison: false
# -- bytes of returned strings --
# 73 116 39 115 32 97 32 119 105 100 103 101 116 33
# 73 116 39 115 32 97 32 119 105 100 103 101 116 33
--(Test::More stuff below this point)--
[ ~/tmp ] $ perl overload_context
# result of comparison: true
# result of comparison: false
# -- bytes of returned strings --
# 73 116 39 115 32 97 32 119 105 100 103 101 116 33
# 73 116 39 115 32 97 32 119 105 100 103 101 116 33
--(Test::More stuff below this point)--
[ ~/tmp ] $
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|