perl写的一个随机编故事的程序(rand随机函数)
(编辑:jimmy 日期: 2024/11/27 浏览:3 次 )
复制代码 代码如下:
#!/bin/perl
use strict;
use warnings;
#定义变量
my $count;
my $input;
my $number;
my $sentence;
my $story;
#定义四个数组
#定义了人物数组
my @nouns=
(
'Dad',
'TV',
'Mom',
'Groucho',
'Rebecca',
'Harpo',
'Robin Hood',
'Joe and Moe',
);
#定义了动作数组
my @verbs=
(
'ran to',
'giggled with',
'put hot sauce into the orange juice of',
'exploded',
'dissolved',
'dissolved',
'sang stupid songs with',
'jumped with',
);
#定义了地点数组
my @prepositions=
(
'at the store',
'over the rainbow',
'at the beach',
'before dinner',
'in New York City',
'in a dream',
'around the world',
);
do
{
#每次运行以前,清空$story的内容
$story='';
#以下是随机组合生成故事
for ($count =0;$count<6;$count++)
{
#我们划分一下结构,scalar @nouns 是获取@nouns数组元素的个数,然后用rand总这几个数中随机生成几个,最后int是将得到的数取整
$sentence =$nouns[int(rand(scalar @nouns))]
." "
.$verbs[int(rand(scalar @verbs))]
." "
.$nouns[int(rand(scalar @nouns))]
." "
.$prepositions[int(rand(scalar @prepositions))]
.'.';
$story .=$sentence;
}
print "\n",$story,"\n";
print "\nType \"quit\"to quit, or press Enter to continue:";
$input=<STDIN>;
}
#这里是利用正则表达式来匹配首字符是q的字符串,如果有,那么就退出,/^是匹配起始位置,/i是不区分大小写
until ($input=~/^\s*q/i);
exit;
#!/bin/perl
use strict;
use warnings;
#定义变量
my $count;
my $input;
my $number;
my $sentence;
my $story;
#定义四个数组
#定义了人物数组
my @nouns=
(
'Dad',
'TV',
'Mom',
'Groucho',
'Rebecca',
'Harpo',
'Robin Hood',
'Joe and Moe',
);
#定义了动作数组
my @verbs=
(
'ran to',
'giggled with',
'put hot sauce into the orange juice of',
'exploded',
'dissolved',
'dissolved',
'sang stupid songs with',
'jumped with',
);
#定义了地点数组
my @prepositions=
(
'at the store',
'over the rainbow',
'at the beach',
'before dinner',
'in New York City',
'in a dream',
'around the world',
);
do
{
#每次运行以前,清空$story的内容
$story='';
#以下是随机组合生成故事
for ($count =0;$count<6;$count++)
{
#我们划分一下结构,scalar @nouns 是获取@nouns数组元素的个数,然后用rand总这几个数中随机生成几个,最后int是将得到的数取整
$sentence =$nouns[int(rand(scalar @nouns))]
." "
.$verbs[int(rand(scalar @verbs))]
." "
.$nouns[int(rand(scalar @nouns))]
." "
.$prepositions[int(rand(scalar @prepositions))]
.'.';
$story .=$sentence;
}
print "\n",$story,"\n";
print "\nType \"quit\"to quit, or press Enter to continue:";
$input=<STDIN>;
}
#这里是利用正则表达式来匹配首字符是q的字符串,如果有,那么就退出,/^是匹配起始位置,/i是不区分大小写
until ($input=~/^\s*q/i);
exit;
下一篇:perl 变量 $/ 的用法解析 上下文为行模式时,$/ 定义以什么来区分行