perl-基础

一、Perl 语法入门:

 一、print 语句:

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

二、引号:

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

三、perl数据类型:

  一、标量:$myfirst=123;编程

  二、数组:@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 );

  三、散列:%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;

三、perl流程控制:

  一、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";
}

  二、case语句:google

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 "没有匹配的条件" }
}

  二、for语句:url

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

  三、foreach语句:spa

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

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

  continue 块一般在条件语句再次判断前执行。code

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

四、perl函数及子程序:

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

  一、perl 函数传参:blog

  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 语句,则子程序的最后一行语句将做为返回值。