5

拜托,谁能帮我解决这个问题:

perl -e 'print for <{a,b,c}{1,2,3}>'

我只是不明白它是如何工作的。它有效!生产

a1a2a3b1b2b3c1c2c3

关于输出。

有谁知道钻石运营商内部发生了什么?

4

1 回答 1

7

glob这是表示bing的另一种方式。基本上,花括号告诉glob操作员将每个逗号分隔的元素放入内部并结合所有可能性。

一个更清晰的方法是用逗号分隔各个输出:

$ perl -e 'print join ",", <{a,b,c}{1,2,3}>;'
a1,a2,a3,b1,b2,b3,c1,c2,c3

来自perldoc -f glob

如果非空大括号是 glob 中使用的唯一通配符,则不会匹配文件名,但可能会返回许多字符串。例如,这会产生九个字符串,每个字符串对应一个水果和颜色:

@many =  glob "{apple,tomato,cherry}={green,yellow,red}";
于 2011-10-24T17:59:20.423 回答