|
|
1
12
这看起来像一些带有Perl语法的C代码。有时,了解对方所想的语言有助于你弄清发生了什么。在这种情况下,人的大脑会受到内存管理、指针算术和其他低级问题的内部工作的影响,因此他想对所有事情进行细微的控制:
这是很多工作,因为原始程序员要么不理解哈希值,要么不喜欢哈希值。
如果您仍然不喜欢散列,并且拥有Perl5.10或更高版本,则可以使用智能匹配来检查值是否在数组中:
但是,您对这个问题有一个特殊的约束。因为您知道只有两个元素,所以您只需检查要添加的元素是否是前一个元素。在第一种情况下,它不会是不死的,所以第一个加法总是有效的。在第二种情况下,它不能是数组中的最后一个元素:
呵呵。我不记得我上次用过
请注意,所有这些解决方案都存在这样一个问题:如果原始文件的数量小于2,它们可能导致无限循环。我会在更高的位置添加一个保护条件,这样就可以通过一个错误来处理no和single文件案例,也许这两个文件案例不会麻烦您订购它们。 另一种方法是洗牌 List::Util )完整的原始文件列表,只需去掉前两个文件:
|
|
|
2
2
它从@heads中选择一个随机元素。 然后再加上另一个随机数 但不同 来自@heads的元素(如果它是以前选择的元素,则会滚动到@heads,直到找到以前未选择的元素)。 总之,它在@heads数组中选择n个(在您的情况下n=2)不同的随机索引,然后复制与这些索引对应的文件。 就我个人而言,我会写得有点不同:
|
|
|
3
1
你贴上“wtf”标签的那部分并不是那么麻烦,只是要确保
再重申一次,如果
但基本上它随机复制两个文件(为什么?)作为“.txt”文件和“.cache”文件。 |
|
|
4
1
只是怎么样
除非
|
|
|
5
0
这里还有另一种选择2个唯一随机索引的方法:
|
|
|
con · Negative Lookaward在perl正则表达式中不起作用 10 月前 |
|
|
Carsten · 使用最近的搜索模式更改文本块 10 月前 |
|
|
A.Ellett · 测试-t STDIN与-t<STDIN> 1 年前 |
|
|
con · 如何跳转到foreach迭代的特定点? 1 年前 |