squ*_*age 1 perl concatenation fizzbuzz ternary-operator perl5
我刚刚在Perl中编写了一个简单的fizzbuzz程序:
#!/usr/bin/perl
for $a (1..100) {
print ($a%15 ? ($a%3 ? ($a%5 ? $a : "buzz") : "fizz") : "fizzbuzz") . $/;
}
Run Code Online (Sandbox Code Playgroud)
它有点工作,但由于某种原因,我没有在输出中得到任何换行符:
12fizz4buzzfizz78fizzbuzz11fizz1314fizzbuzz1617fizz19buzzfizz2223fizzbuzz26...
Run Code Online (Sandbox Code Playgroud)
我知道这可以通过print $/;在循环结束时作为单独的语句添加来修复,但我无法弄清楚为什么这是必要的.
我究竟做错了什么?
我究竟做错了什么?
你实际上在做print ("foo") .$/什么连接print返回值和$/.
使用warnings会给你Useless use of concatenation (.) or string in void context
尝试将所有内容都包含在内 ()
print (($a%15 ? ($a%3 ? ($a%5 ? $a : "buzz") : "fizz") : "fizzbuzz") . $/);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |