Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5376349
  • 博文数量: 1144
  • 博客积分: 11974
  • 博客等级: 上将
  • 技术积分: 12312
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-13 20:06
文章存档

2017年(2)

2016年(14)

2015年(10)

2014年(28)

2013年(23)

2012年(29)

2011年(53)

2010年(86)

2009年(83)

2008年(43)

2007年(153)

2006年(575)

2005年(45)

分类:

2008-10-02 20:31:57

#!/usr/bin/perl
sub dis{
   my(%hash)=@_;
   my $c=$hash{'$a'};
   my $d=$hash{'$b'};
   return $c*$d;
}
print dis('$a'=>;6,'$b'=>;5);
Perl 把 $a $b 当作两个变量来处理了,而你又没有定义他们的值。
更加错误的是,你没有用 use strict 和 use warnings,如果用了他们,还有可能给你提示一个错误。
更加更加错误的是,你用 $a $b 来做变量名了,所以即使是你加了 use strict 和 use warnings 也不会报错。
总之,Perl 是一个很敏感的语言,你稍微写错一点,那么 Perl 就会按照它的思路去理解你的程序,最后就会得出和你的想法完全不同的结果。
解决此类问题的唯一办法,就是熟读 Perl 语法!
学习一种语言而不去掌握它的语法,你会很头疼的,尤其是 Perl 这种很灵活的语言。
to apile:
只有当子程序包含有多个复杂结构的参数时,才有必要使用引用来传递散列表和数组。楼主这个情况下不需要使用引用来传递散列表。
 
阅读(2181) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~