perl函数参数传递
在perl语言中,有两种方式可以向函数传递参数:
①使用全局变量;利用变量的作用域规则,即如果不存在同名不同作用域的变量,就可以在整个程序中利用变量名对全局变量进行访问。
②利用默认参数列表变量(@_)实现参数的传递。
默认参数列表变量(@_)本质是一个数组,可以在函数体内创建"my"类型的局部变量来获取参数,如my($para1,$para2)=@_
perl语言中内置了一些默认变量。例如,$_是默认输入输出变量,@_是默认参数列表变量。不同于其他编程语言在定义时由用户指定参数类型和参数个数,perl语言通过采用默认参数列表变量,可以在进行函数定义时不需要指定参数列表信息,而在函数体实现的时候,利用数组赋值的方式,获取几个有效的参数。
func("string1");
func("string2");
sub func{
my($val)=@_;
print "this is $val\n";
}
输出结果:
函数返回值
使用return语句返回函数返回值
print hello("world");
sub hello{
my($str)=@_;
$str="hello $str\n";
return $str;
}
输出结果:
把数组作为参数传递给函数
将中英语料混合,以20%的变异率进行混合。
语料编码为utf8,格式如下:
你们 将 不 负 这些 信任 。 ||| " that trust is well placed . ||| 5:2 6:3 1:6 2:6 4:6 7:7 ||| 1:1 2:5 3:6 6:6 7:7
中文 ||| 英文 ||| 中文单词索引对应的英文索引 ||| 英文单词索引对应的中文索引
部分代码如下:
#将混合语料写入到文件中
arrToFile(@chi_arr);
函数定义如下:
#将数组写入到文件中
sub arrToFile{
my (@chi_arr)=@_;
foreach $ele (@chi_arr){
print Out1 $ele." ";
}
print Out1 "\n";
}