我遇到了一个perl程序,它计算字符串中元音的数量.但是我无法推断它是如何运作的.谁可以逐行解码这个程序?
$\=$/;map{
$_=<>;print 0+s/[aeiou]//gi
}1..<>
Run Code Online (Sandbox Code Playgroud)
$\=$/;perl的意思是什么?
设置$\为的值$/.
$/定义readline(<>)的结尾行.它的默认值是换行符(U + 000A).
$\被附加到每个的输出print.它的默认值是空字符串.
所以,假设$/没有改变,它设置$\为换行,这print就像行为一样say.
谁可以逐行解码这个程序?
print采取行动say.ARGV.ARGV.s/[aeiou]//gi计数元音数量.在标量上下文中,s///g返回匹配/替换的数量.0+强制标量上下文.
顺便说一句,tr/aeiouAEIOU//会更快0+s/[aeiou]//gi,而不是更快.它也是非破坏性的.