perl-基础

1、Perl 语法入门:

 1、print 语句:

print "Hello, world\n";
print("Hello, world\n");

2、引号:

 Perl双引号和单引号的区别: 双引号可以正常解析一些转义字符与变量,而单引号无法解析会原样输出。

3、perl数据类型:

  1、标量:$myfirst=123;

  2、数组:@arr=(1,2,3);

@names = ('google', 'runoob', 'taobao');
@copy = @names;   # 复制数组
$size = @names;   # 数组赋值给标量,返回数组元素个数
push(@sites, "baidu"); # 在数组结尾添加一个元素
unshift(@sites, "weibo"); # 在数组开头添加一个元素
pop(@sites); # 删除数组末尾的元素
shift(@sites);# 移除数组开头的元素
# 用split()方法将字符串转为数组
@string = split('-', $var_string);
# 用join()方法将数组转为字符串
$string1 = join( '-', @string );

  3、散列:%h=('a'=>1,'b'=>2);

%data = ('google', 45, 'runoob', 30, 'taobao', 40);
print "\$data{'google'} = $data{'google'}\n";
$size = @keys; # 赋值给标量,返回元素个数
使用 keys 函数读取哈希所有的键:keys %HASH
%data = ('google'=>'google.com', 'runoob'=>'runoob.com', 'taobao'=>'taobao.com');
@names = keys %data;
使用 values 函数来读取哈希所有的值:values %HASH
%data = ('google'=>'google.com', 'runoob'=>'runoob.com', 'taobao'=>'taobao.com');
@urls = values %data;

3、perl流程控制:

  1、if语句:

$a = 100;
# 使用 == 判断两个数是否相等
if( $a  ==  20 ){
    # 条件为 true 时执行
    printf "a 的值为 20\n";
}elsif( $a ==  30 ){
    # 条件为 true 时执行
    printf "a 的值为 30\n";
}else{
    # 以上所有的条件为 false 时执行
    printf "a 的值为 $a\n";
}

  2、case语句:

use Switch;
$var = 10;
@array = (10, 20, 30);
%hash = ('key1' => 10, 'key2' => 20);
 
switch($var){
   case 10           { print "数字 10\n" }
   case "a"          { print "字符串 a" }
   case [1..10,42]   { print "数字在列表中" }
   case (\@array)    { print "数字在数组中" }
   case (\%hash)     { print "在哈希中" }
   else              { print "没有匹配的条件" }
}

  2、for语句:

# 执行 for 循环
for( $a = 0; $a < 10; $a = $a + 1 ){
    print "a 的值为: $a\n";
}

  3、foreach语句:

@list = (2, 12, 36, 42, 51);
# 执行foreach 循环
foreach $a (@list){
    print "a 的值为: $a\n";
}

   last 语句用于退出循环语句块;

  continue 块通常在条件语句再次判断前执行。

  foreach $a (@listA){
     statement(s);
  }continue{
     statement(s);
  }

4、perl函数及子程序:

# 函数定义
sub Hello{
   print "Hello, World!\n";
}
# 函数调用
Hello();

  1、perl 函数传参:

  Perl 子程序可以和其他编程一样接受多个参数,子程序参数使用特殊数组 @_ 标明

  因此子程序第一个参数为 $_[0], 第二个参数为 $_[1], 以此类推。

  不论参数是标量型还是数组型的,用户把参数传给子程序时,perl默认按引用的方式调用它们

# 定义求平均值函数
sub Average{
   # 获取所有传入的参数
   $n = scalar(@_);
   $sum = 0;
 
   foreach $item (@_){
      $sum += $item;
   }
   $average = $sum / $n;
   print '传入的参数为 : ',"@_\n";           # 打印整个数组
   print "第一个参数值为 : $_[0]\n";         # 打印第一个参数
   print "传入参数的平均值为 : $average\n";  # 打印平均值
}
# 调用函数
Average(10, 20, 30);

子程序可以向其他编程语言一样使用 return 语句来返回函数值。

如果没有使用 return 语句,则子程序的最后一行语句将作为返回值。

 

posted on 2016-03-23 15:22  hematologist  阅读(232)  评论(0编辑  收藏  举报

导航