perl 学习
参考链接:https://www.runoob.com/perl/perl-syntax.html
#!/usr/bin/perl
print "hello\n";
注释
#!/usr/bin/perl
# 这一行是 perl 中的注释
print("hello\n");
=pod 注释
这是一个多行注释
这是一个多行注释
这是一个多行注释
这是一个多行注释
print("again?\n");
=cut
print("done\n");
长字符串变量
#!/usr/bin/perl
$a = 10;
$var = <<"EOF";
这是一个 Here 文档实例,使用双引号。
可以在这输入字符串和变量。
例如:a = $a
EOF
print "$var\n";
$var = <<'EOF';
这是一个 Here 文档实例,使用单引号。
例如:a = $a
EOF
print "$var\n";
转移字符
#!/usr/bin/perl
$result = "菜鸟教程 \"runoob\"";
print "$result\n";
print "\$result\n";
数据类型
标量
标量是 Perl 语言中最简单的一种数据类型。这种数据类型的变量可以是数字,字符串,浮点数,不作严格的区分。在使用时在变量的名字前面加上一个 $,表示是标量。例如:
$myfirst=123; #数字123
$mysecond="123"; #字符串123
数组
数组变量以字符 @ 开头,索引从 0 开始,如:@arr=(1,2,3)
@arr=(1,2,3)
哈希
哈希是一个无序的 key/value 对集合。可以使用键作为下标获取值。哈希变量以字符 % 开头。
%h=('a'=>1,'b'=>2);
创建变量
#!/usr/bin/perl
$age = 25; # 整型
$name = "runoob"; # 字符串
$salary = 1445.50; # 浮点数
print "Age = $age\n";
print "Name = $name\n";
print "Salary = $salary\n";
#!/usr/bin/perl
@ages = (25, 30, 40);
@names = ("google", "runoob", "taobao");
print "\$ages[0] = $ages[0]\n";
print "\$ages[1] = $ages[1]\n";
print "\$ages[2] = $ages[2]\n";
print "\$names[0] = $names[0]\n";
print "\$names[1] = $names[1]\n";
print "\$names[2] = $names[2]\n";
#!/usr/bin/perl
%data = ('google', 45, 'runoob', 30, 'taobao', 40);
print "\$data{'google'} = $data{'google'}\n";
print "\$data{'runoob'} = $data{'runoob'}\n";
print "\$data{'taobao'} = $data{'taobao'}\n";
#!/usr/bin/perl
@names = ('google', 'runoob', 'taobao');
@copy = @names; # 复制数组
$size = @names; # 数组赋值给标量,返回数组元素个数
print "名字为 : @copy\n";
print "名字数为 : $size\n";
条件语句
#!/usr/local/bin/perl
$name = "菜鸟教程";
$favorite = 10; # 喜欢数
$status = ($favorite > 60 )? "热门网站" : "不是热门网站";
print "$name - $status\n";
#!/usr/bin/perl
$a = 10;
if($a > 20){
print "\$a > 20\n";
}
else{
print "\$a <= 20\n";
}
#!/usr/bin/perl
use Switch;
switch(argument){
case 1 { print "数字 1" }
case "a" { print "字符串 a" }
case [1..10,42] { print "数字在列表中" }
case (\@array) { print "数字在数组中" }
case /\w+/ { print "正则匹配模式" }
case qr/\w+/ { print "正则匹配模式" }
case (\%hash) { print "哈希" }
case (\&sub) { print "子进程" }
else { print "不匹配之前的条件" }
}
循环语句