in reply to Re^2: When does '123' become the number 123.0?
in thread When does '123' become the number 123.0?

Perl will definitely treat $x and$y as numbers for the computations, and when you print $x and $y you will be presented with their current numeric values. If that's what you're after (and I assume it is) then you have nothing to worry about. But if, for some perverse reason, you want the following to print $y's string value (2) instead of its numeric value (7) then you're out of luck:
use warnings; $y = "2"; $y += 5; print $y;
Btw, it's all being taken care of quite efficiently at runtime - not compile time. I wouldn't worry about wasting cycles - this is the way it's designed to work. Just let perl handle it.

As mentioned elsewhere in this thread, doing repeated Devel::Peek::Dump($x) is the best way of seeing how perl keeps track of things by using the scalar's flags and (PV,IV,UV,NV) slots.

Cheers,
Rob