原文链接 https://www.jianshu.com/p/2dc7bef783ed
参考链接 perl入门 https://blog.csdn.net/ruby912/article/details/90721475
nux系统一般自带perl,可以在命令行运行。
1.Hello,World
- #!/usr/bin/perl -w
- print ("hello,world!\n");
- #print "hello,world!\n";
说明:
(1)第一行指定解释器,-w参数表示提示警告(或者使用use strict命令,执行更严格的检查);
(2)第二行输出hello, world!;
(3)如果习惯c的函数方式,print的参数可以打括号;
(4)第三行是注释,注释以#打头;
(5)如果习惯shell的方式,print的参数可以没有括号;
(6)双引号内可以使用转义字符;
不妨设文件名为helloworld.pm
程序的执行方法为:
- (1)perl helloworld.pm
- (2)chmod 755 helloworld.pm && ./helloworld.pm
2.常量
2.1数字
(1)Perl内部总按照“双精度浮点数”保存数字并执行运算;
(2)0377=>八进制;0xFF=>十六进制;
2.2字符串
(1)单引号表示字符串,不转义;
(2)双引号表示字符串,转义且解释变量;
2.3字符串操作符
(1)拼接操作符:“.”=>拼接字符串;
(2)重复操作符:“x”=>一个字符串重复多次;
- #!/usr/bin/perl -w
- print ("hello,"."world!\n");
- print ("hello " x 3);
输出结果是:
- hello,world!
- hello hello hello
最后要说明一点,Perl是弱类型语言,字符串和数字会相互转化,这一点和php一样。
3.变量
(1)变量以$开头,后接一个标示符;
(2)如何用变量获取用户输入?
使用,它获取用户的输入(一般以换行结束),可以使用chomp去除结尾的换行符。
- #!/usr/bin/perl -w
- $count = 0;
- while($count<10)
- {
- chomp($input = <STDIN>);
- print($input);
- $count++;
- }
(3)未定义变量
未定义的变量会赋予undef值,它既不是数字,也不是字符串;
它有可能被当做数字0使用;
使用define函数可以知道一个变量是否被定义;
- #!/usr/bin/perl -w
- $var = undef;
- print($var);
- if(defined($var))
- {
- print("defined!\n");
- }
- else
- {
- print("undefined!\n");
- }
- $var++;
- print($var);
它的输出是:
- Use of uninitialized value in print at undef.pm line 3.
- undefined!
- 1
(4)变量的作用域
my和our可以指定变量的作用域
my指定为局部作用域;
our指定为全局作用域(默认为our);
- #!/usr/bin/perl -w
- our $g_one = "global_one\n";
- $g_two = "global_two\n";
- {
- my $local_one = "local_one\n";
- print($g_one);
- print($g_two);
- print($local_one);
- }
- print($g_one);
- print($g_two);
- print($local_one);
输出为:
- global_one
- global_two
- local_one
- global_one
- global_two
- Use of uninitialized value in print at our_my.pm line 13.
4.数组与列表
4.1数组
和c的数组使用非常类似:
$array[2]=”a2″;
4.2列表
圆括号内的一系列值,构成列表:
(1, 2, 3)
(“hello”, 4)
(“hello”, “world”, “yes”, “no”)
qw(hello world yes no)
(1..10)
说明:
(1)第一行,列表元素为1,2,3;
(2)第二行,列表元素为一个字符串,一个数字;
(3)第三行,列表元素为4个字符串,好多引号和逗号啊;
(4)第四行,qw操作符,用来建立字符串列表,而不用输入这么多引号和逗号,效果同(3);
(5)范围操作符“..”,表示一个范围,从左至右连续加一。
列表的赋值:
(
整个列表的引用,@操作符:
@list = qw(yes i am);
@none = ();
@huge = (1..5);
@stuff = (@list, @none, @huge);
pop和push操作符:
(1)pop弹出列表末端元素;
(2)push向列表末端压入元素;
shift和unshift操作符:
(1)shift移出列表首部元素;
(2)unshift向列表首部压入元素;
列表的输出:
(1)列表输出,只输出列表,元素间不含空格;
(2)列表的字符串化输出,输出列表,元素间加入空格;
(3)foreach控制结果,可以依次取得列表中各个元素
- #!/usr/bin/perl -w
- @list = qw(yes i am