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:
$ perl -c -wE '1+1; say "OH HAI"' Useless use of a constant (2) in void context at -e line 1. -e syntax OK
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 reply to Re^2: Why is const x const not a const?
by moritz
in thread Why is const x const not a const?
by PerlGrey
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |