![]() |
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个唯一随机索引的方法:
|
![]() |
Manny · 如何比较Perl中的字符串? 2 年前 |
![]() |
BioRod · 我不能用Perl打印键和值 2 年前 |
![]() |
user17227456 · Perl CLI代码无法追加字符串行 2 年前 |
![]() |
LearnToBeBetter · 读取文件,搜索字符串,打印字符串 3 年前 |
![]() |
KJ7LNW · 一些波斯语文本的宽字符印刷,但其他文本则没有 3 年前 |
![]() |
con · 如何搜索大型数据结构并返回一系列给出特定值的键/数组? 3 年前 |
![]() |
Pranay Nanda · 使用regex解析许可证文件 7 年前 |