[英]perl call subroutine to generate random strings not working
生成随机字符串的脚本:
sub rand_Strings {
my @chars = ("A".."Z", "a".."z", "0".."9");
my $string;
$string .= $chars[rand @chars] for 1..8;
}
my $strings = &rand_Strings;
print $strings;
但是,它不在子例程中时起作用。 如果$ string是全局变量,也可以使用。 我错过了什么? 谢谢,
您需要在子例程中显式添加return
语句。 在子例程中自动返回最后一条语句在循环构造(在您的示例中为for
循环)中不起作用。 for
循环的后缀版本等效于带有花括号的常规版本。
来自perldoc perlsub :
如果找不到“ return”,并且最后一条语句是表达式,则返回其值。 如果最后一条语句是一个循环控制结构,例如“ foreach”或“ while”,则未指定返回值。 空子返回空列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.