我已经开始向我的家人开发这个项目了,但是现在我需要将一个名字链接到另一个名字(请记住我拥有它的第一个名字)并且只在变量中存储第二个名字,记住这个list是一个带有一些名字的文件(* .txt),但我怎么做呢?感谢。
答案 0 :(得分:6)
好的,您似乎想从文件中获取随机名称。假设这些名称在不同的行上,您可以执行以下操作(请阅读perldoc perlfunc中的内置rand
,int
和chomp
方法,了解它们的工作原理):
my @names = <>;
chomp(@names);
my $random_name = $names[int(rand(@names))];
将其分解为步骤,这就是它的作用:
perl myscript.pl < names.txt
),则可以使用<>
直接从STDIN读取。chomp
删除每行中的所有换行符。@list
获取列表中元素的数量(例如,4)rand(4)
:获取0到4之间的随机数(所以我们可以得到0到3.999999之间的数字......)int(some number from above)
这是一个浮点数,所以让我们将它向下舍入(所以现在我们有0,1,2或3:这正是我们列表中可能的数组索引!答案 1 :(得分:2)
你问题中的英语非常糟糕,以至于我很难理解你在问什么。
但是这个怎么样?
use List::Util qw(shuffle);
my @array = shuffle(<>);
print shift @array;
从STDIN读取,您可以随时使用open打开文件,然后在文件句柄上使用。
这是文件IO:
use List::Util qw(shuffle);
open my $fh, "<", "out.txt";
my @array = shuffle(<$fh>);
print shift @array;
close $fh;