go ahead... be a heretic | |
PerlMonks |
Re^2: Why is const x const not a const?by moritz (Cardinal) |
on Jan 22, 2012 at 14:25 UTC ( [id://949256]=note: print w/replies, xml ) | Need Help?? |
The original question isn't phrased very carefully, but it does have an interesting core. Perl has a "peephole optimizer" which evaluates some constant expressions at compile time. You can see that for example here:
Note that the -c switch means that the code is only compiled, not run. And yet the warning mentions 2 instead of 1+1, so you can see that the expression 1+1 has been evaluated at compile time, not at run time. The original question could thus be phrase "Why is the expresion "literal" x <literal_number> not constant-folded at compile time, as <literal_number> + <literal_number> is?" And yes, that's a valid and interesting question I think if you want a constant use a constant That's not very convincing. For example if I write '=' x 80, I see immediately that it's 80 equal signs. But if I write '===============================================================================', can you see immediately how many equal signs that are? The difference in readability is even larger when whitspaces are concerned, ' ' x 20 vs. ' '. Imagine that being printed out on a sheet of paper. Which one do you find easier to decipher?
In Section
Seekers of Perl Wisdom
|
|