|
1.定义一个方法
Perl使用sub定义方法。
语法:
sub 方法名称{方法体}
2.调用一个方法
Perl直接使用方法名称调用方法。
调用方式有以下四种:
方法名称;
&方法名称;
方法名称();
&方法名称();
说明:方法调用可以再任何位置,可以在方法前、后调用,也可以在方法体内部调用。
3.传递参数
Perl通过方法名后面的括号将参数列表传递到方法体内。例如:function_name("param1","param2"...);
方法体内部通过@_接收参数。@_是数组。取值的方法也可以采用下标的形式取得。
关于传值和传引用:
1.直接将值写进方法后面的括号内就是传值,将标量($xxx)、数组(@xxxx)、哈希结构(%xxx)放进去就是传引用。
2.如果没有改变变量值的需求的情况下,不推荐使用@_的方式进行取值。首先,会导致引用对象的改变,其次,并不能明确表明代表的是什么意思。
可使用($param1,$param2...)=@_; 的方式取值运算。
4.方法的返回值
可以使用return显示的返回值。也可不用return。
简单示例,帮助理解
1 #!user/bin/env perl -w
2 #定义一个函数
3 sub fun_say_hello{
4 print "hello,world!\n";
5 }
6
7 #引用函数
8 fun_say_hello;
9 &fun_say_hello;
10 fun_say_hello();
11 &fun_say_hello();
12
13 #传递参数
14 sub fun_say_hello_with_name{
15 ($name) = @_;
16 print "hello,$name!\n";
17 }
18
19 fun_say_hello_with_name("Tom");
20
21 #传值和传引用
22 sub fun_change_name1{
23 ($fname) = @_;
24 $fname = "Jack";
25 }
26
27 sub fun_change_name2{
28 @_[0] = "Jack";
29 }
30
31 $name = "Tony";
32 fun_change_name1($name);
33 print "$name\n";
34 fun_change_name2($name);
35 print "$name\n";
36
37 #返回值
38 sub check_login{
39 ($name) = @_;
40 if ($name eq "Tony")
41 {
42 return "welcome\n";
43 }
44 else
45 {
46 "sorry\n";
47 }
48 }
49
50 print check_login("Tony");
51 print check_login("Jack");
|
|
|