Perl语言入门笔记 第四章 子程序

=pod
定义子程序:
	sub sub_name
	{
		#($var1, $var2) = @_;
		#$var1 = $_[0];
		#$var2 = $_[1];
		#定义局部变量: my $myVar = $_[1];
		my ($m, $n) = @_;
	}
	
调用子程序:
	&sub_name;


	$maximum = &max(3, 5, 10, 4, 6);
	sub max
	{
		my($max_so_far) = shift @_; #数组中的第一个值,暂时把它当成最大值
		foreach(@_) #遍历@_比较得出最大值
		{
			if($_ > $max_so_far)
			{
				$max_so_far = $_;
			}
		}
		$max_so_far; #此时就相当于,return $max_so_far;	
	}

关于词法(my)变量:
	可以在if、while、foreach的语句块里使用。
	foreach(1..10)
	{
		my($square) = $_ * $_; #该循环中的私有变量
		print "$_ squared is $square.\n";
	}
	
	my($num) = @_; #列表上下文,和($num) = @_;相同,得到@_的第一个元素
	my $num = @_; #标量上下文,和$num = @_;相同,得到@_里面元素的个数
	my @phone_number;
	在日常perl编程当中,最好对每个新变量都是用my声明,让它保持在自己所在的词法作用于内。在第三章中,你已经看到过如何在foreach循环中定义自己的控制变量而这个控制变量也可以声明为词法变量:
	foreach my $rock (qw/bedrock slate lava/)
	{
		print "One rock is $rock.\n";#依次输出每块石头的名字
	}
	
return操作符:
	和c/c++的语言没多大区别,可以终止循环,提前退出,也可以在最后返回某值	
	可以返回非标量数值,通俗点讲就是返回数组和哈希表类的变量
	
state限定符:
	state限定符和c语言中的static限定符一样,限定某个变量后,只会初始化一次,然后会保存上次的值
	如:
	注意:要加上use 5.010;
	sub marine
	{
		state $n = 0; #持久性私有变量$n
		$n += 1;
		print "Hello, sailor number $n!\n";
	}
	
	
=cut

#!/usr/bin/perl -w
use utf8;
use diagnostics;
use strict;







system "pause";

posted @ 2015-08-24 01:02  笑面浮屠  阅读(141)  评论(0编辑  收藏  举报