perl - 这段 Perl 代码用外行的话来说是做什么的?

标签 perl

在循环中找到它。我已经阅读了有关 splice 的内容,但它让我更加困惑。 我不熟悉 Perl,但正在尝试将算法翻译成另一种语言。

my $sill = splice(@list,int(rand(@list)),1);
       last unless ($sill);

更具体地说:如果 $sill 没有从最后退出循环,它里面会是什么?

感谢您的帮助!

最佳答案

这从数组 @list 中随机删除一个元素。该值分配给 $sill。如果这是一个假值,则封闭循环(未显示)被打破。

splice接受一个数组、一个偏移量和一个长度,再加上一个替换列表。如果省略替换,则删除元素。

长度是常量(1 个元素),但偏移量计算为介于 0 和 @list 长度之间的随机整数。

关于perl - 这段 Perl 代码用外行的话来说是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14773407/

相关文章:

perl - 分布式测试框架

regex - 将触发器的结果保存在变量中?

perl - 在 Perl 中使用 "sort"作为 utf8 字符串

perl - 用perl删除文件

regex - 当用户输入右侧时,将 ee 修饰符安全地与 s///运算符一起使用

perl - 如何告诉 perl 打印到文件句柄而不是打印文件句柄?

perl - 加速 HyperLogLog 算法的实现

perl - 调试 HTTP::Tiny

perl - 如何检查 Perl 中的散列中是否存在键?

perl - 在 Perl 中,子程序如何获得指向自身的 coderef?