Using perl -MO=Deparse may shed some light on some of this weirdness, although I have no idea why on Earth anyone would implement 'inf' the way it works on my box.
perl -MO=Deparse -e 'print $n[inf]'
prints
print $n[9**9**9];
as does
perl -MO=Deparse -e 'print $n["inf"]'
On the other hand,
perl -MO=Deparse -e 'print $n[-inf]'
prints
print $n[-'inf'];
perl -MO=Deparse -e 'print "", inf==0 ? "a" : "b", 'inf'==0 ? "c" : "d
+", -inf==0 ? "e" : "f"'
prints
print '', 'inf' == 0 ? 'a' : 'b', 'inf' == 0 ? 'c' : 'd', -'inf' == 0
+? 'e' : 'f';
As nearly as I can tell at the moment, inf is only equivalent 9**9**9 if it is used by itself as a subscript; it is taken as a bareword in a simple assignment, so
perl -MO=Deparse -e '$n[inf], $n[1+inf], $n[-inf] = inf'
prints
$n[9**9**9], $n[1 + 'inf'], $n[-'inf'] = 'inf';
My perl -v shows,
This is perl, v5.8.8 built for i486-linux-gnu-thread-multi
Does anyone know why?
- quester
-
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.