in reply to Re^4: Confirming what we already knew (it's cached)
in thread Confirming what we already knew
Yes. I understood, (and indicated this above?) that when a scalar (that has previously been used in a numeric context) is fetched, the binary version is accessed and used saving the need for a ascii-to-binary conversion.
The statement that diotalevi rightly took me to task for--though I have again attempted to verify this without success--is the one were I suggested that when a scalar that has been used in a numeric context and therefore has a binary version available, is modified numerically, the ascii version is also updated.
Part of what made me think this was the case is that I cannot see any mechanism in the data structures whereby perl would be able to know whether the ascii version needed updating from the binary version.
To clarify (my own thoughts mostly), in the following situation
my $num = '5.1'; ## scalar is a string, NOK is false if ($num == 5.1) { print 'It is'; }
At this point, $num has been used in a numeric context, so a ascii-to-binary conversion has been done, NOK is true, and subsequent references to $num in numeric contexts can re-use the binary value directly avoiding an ftoi().
$num++; ## binary value fetched, incremented and stored $num++; ## binary value fetched, incremented and stored
The question is, did the stringy version of the value get updated when those modification occurred, or does that get delayed until $num is used in a string context?
If the stringy version was not updated, then by what mechanism does perl know that it must do so when, sometime later, I do print $num;?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^6: Confirming what we already knew (it's cached)
by Elian (Parson) on Mar 05, 2003 at 19:59 UTC | |
|
Re: Re: Re^4: Confirming what we already knew (it's cached)
by hv (Prior) on Mar 05, 2003 at 21:07 UTC | |
by BrowserUk (Patriarch) on Mar 05, 2003 at 21:32 UTC | |
by hv (Prior) on Mar 05, 2003 at 21:39 UTC | |
by BrowserUk (Patriarch) on Mar 05, 2003 at 21:52 UTC | |
|
Re^6: Confirming what we already knew (oops)
by tye (Sage) on Mar 06, 2003 at 07:10 UTC |