Unix系统下,Perl脚本第一行使用#!。Perl脚本的后缀名一般为【.plx】或【.pl】,运行时使用perl NAME.plx即可
例如,1.pl内容如下:
#!/usr/bin/perlprint "hello world\n"执行该脚本:
$ perl 1.plWindows系统下,不要加#!,因为Windows是通过关联打开.pl文件类型的应用程序来运行的。
Perl脚本中,除了注释行和代码块的最后一行,每行都需要以;结尾
Perl使用#作为注释符号,所以只支持单行注释、行尾注释
# 这是单行注释print "hello world\n"; # 行尾注释Perl中变量有三种数据类型:标量、数组、hash
标量是存放单个数据的类型,标量使用$符号前缀来表示,如$name
数组是存放一系列数据的类型,数组使用@符号前缀,如@names
hash是存放键值对(key-value)的数据类型,hash通常也称为映射、字典、关联数组,hash使用%符号前缀,如%person
其实上面关于前缀的说法是不准确的,但暂时这样理解,以免还未入门就放弃Perl
# 变量name是一个标量类型,只保存了一个字符串数据$name = "junmajinlong";# 变量language是一个数组类型,可保存多个数据@languages = ("Perl", "Ruby", "Shell", "Rust");# 变量person是一个hash类型,可保存key-value键值对数据%person = (name => "junmajinlong", age => 23,);Perl常使用print()、say()、和printf()进行输出
print()输出时不加尾部换行符printf()用于格式化输出say()和print()类似,但输出时自动加尾部换行符,但使用say()时要求至少使用perl v5.10版本或开启say特性print "hello world", "\n"; # 手动加上行尾换行符print "hello world\n"; # 效果同上printf "name: %s\n", "junmajinlong";use 5.010;# 指定使用Perl v5.10版本say "hello world"; # 自动在行尾加上换行符use关键字可用于指定使用哪个包、哪个特性、哪个版本的perl,等
# 指定使用Time::HiRes包中的time函数use Time::Hires qw(time);# 指定使用say特性use features 'say';# 指定使用Perl 5.10版本use 5.010;注意,上面use指定版本的版本值是5.010而不是5.10,use 5.10会被perl认为是5.100版如果指定更细致的小版本号,如5.10.1版,则:use 5.010001;。
也可以以如下方式指定版本号:
use v5.10;Perl中调用自带的内置函数时,可以使用括号传递参数,也可以省略括号。但省略括号时,有时候需要注意陷阱
例如,调用print函数:
print("hello world\n");print "hello world\n";Perl中的双引号字符串内,可以使用变量替换、表达式替换。这种行为称为字符串的变量内插(interpolation)和表达式内插
# 变量内插$name = "junmajinlong";print "name: $name\n";# 表达式内插,直接强记表达式内插语法:@{[EXPR]}print "10 + 10 = @{[10+10]}";Perl中不需要对变量进行