标量数据
标量在大多数情况下不是数字就是字符串
所有数字的内部格式都是一致的,不管是整数和浮点数, 在内部, perl均看成是 双精度浮点数来处理.
字符串
单引号字符串 和 双引号字符串
单引号字符串中除了'和\之外均为字符串的内容, 要得到'和\可以使用反斜线\来进行转义
'\'sdklsdjfd\\'
双引号字符串
在双引号字符串中,反斜线可以用来控制字符,或八进制,十六进制数的表示。
"coke\tsprite" #coke, a tab(一个制表符), sprite
\n 换行 \r 回车 \t 制表符......
字符串的操作
"hello"."world" #同于 "helloworld"
串联必须有.操作进行
"fred"x3 # "fredfredfred"
5x4 # "5555"
数字和字符串之间的自动转换
不用担心使用的数字还是字符串(大多数情况下), perl将自动转换它们
"Z".5*7 #等同于 "Z".35, 或 "Z35"
Perl内嵌的警告(warnings)
当程序中包含可能的错误时, 可以要求Perl警告你, 运行程序时, 可以在命令行中使用-w这个参数把警告打开
$ perl -w my_pogram
或
#!/usr/bin/perl -w
标量变量
标量变量的名字由一个美元符号($)后接Perl标示符:有字母或下划线开头,后接字母,数字或下划线。
print 输出
print "hello world\n" # 输出hello world, 后接换行符
字符串中标量变量的内插
当一个字符串由双引号括起来的时, 如果变量前没有反斜线,则变量会被其值内插。
$mean = "brontosaurus steak";
$barney = "fred ate a $meal"; #$barney现在是"fred ate a brontosaurus steak"
变量未被赋值, 则将使用空值进行替换
在字符串中变量前($符号前)加上反斜线(\),变量将不会被内插(替换)
$fred='hello';
print "The name is \$fred.\n";
比较运算符
< <= == >= !=
字符串比较
相等 eq
不等 ne
小于 Lt
大于 gt
小于或等于 le
大于或等于 ge
if控制结构
if ($name gt 'fred'){
print "'$name' comes after 'fred' in sorted order.\n"
} else {
print "'$name' does not come after 'fred'.\n"
}
用户输入
从键盘上得到输入
$line = <STDIN>
if ($line eq "\n"){
print "That was just a blank line \n";
}else {
print "That line of input was: $line \n";
}
chomp操作
如果字符串结尾有换行符,chomp可以去掉它
$test = "a line of text \n";
chomp($text); #去掉换行符
chomp($text=<STDIN>); #读入,但不含换行符
while 控制结构
$count = 0;
while($count<10){
$count += 2;
print "count is now $count\n";
}
undef 值
变量在第一次赋值前有一个特殊的值undef
while($n<10){# n为undef, 自动转换为0
$num += $n;
}
defined 函数
能返回undef的操作之一是行输入操作,<STDIN>。通常,它会返回文本中的一行。但如果没有更多的输入,
如到了文件的结尾, 则返回undef.要分辨其实undef还是空串,可以使用defined函数, 它将在为undef返回false, 其余返回true。
$madonna = <STDIN>;
if ($defined($madonna)){
print "the input is $madonna!\n"
} else {
print "No input available!\n"
}
$madonna = undef;
标量在大多数情况下不是数字就是字符串
所有数字的内部格式都是一致的,不管是整数和浮点数, 在内部, perl均看成是 双精度浮点数来处理.
字符串
单引号字符串 和 双引号字符串
单引号字符串中除了'和\之外均为字符串的内容, 要得到'和\可以使用反斜线\来进行转义
'\'sdklsdjfd\\'
双引号字符串
在双引号字符串中,反斜线可以用来控制字符,或八进制,十六进制数的表示。
"coke\tsprite" #coke, a tab(一个制表符), sprite
\n 换行 \r 回车 \t 制表符......
字符串的操作
"hello"."world" #同于 "helloworld"
串联必须有.操作进行
"fred"x3 # "fredfredfred"
5x4 # "5555"
数字和字符串之间的自动转换
不用担心使用的数字还是字符串(大多数情况下), perl将自动转换它们
"Z".5*7 #等同于 "Z".35, 或 "Z35"
Perl内嵌的警告(warnings)
当程序中包含可能的错误时, 可以要求Perl警告你, 运行程序时, 可以在命令行中使用-w这个参数把警告打开
$ perl -w my_pogram
或
#!/usr/bin/perl -w
标量变量
标量变量的名字由一个美元符号($)后接Perl标示符:有字母或下划线开头,后接字母,数字或下划线。
print 输出
print "hello world\n" # 输出hello world, 后接换行符
字符串中标量变量的内插
当一个字符串由双引号括起来的时, 如果变量前没有反斜线,则变量会被其值内插。
$mean = "brontosaurus steak";
$barney = "fred ate a $meal"; #$barney现在是"fred ate a brontosaurus steak"
变量未被赋值, 则将使用空值进行替换
在字符串中变量前($符号前)加上反斜线(\),变量将不会被内插(替换)
$fred='hello';
print "The name is \$fred.\n";
比较运算符
< <= == >= !=
字符串比较
相等 eq
不等 ne
小于 Lt
大于 gt
小于或等于 le
大于或等于 ge
if控制结构
if ($name gt 'fred'){
print "'$name' comes after 'fred' in sorted order.\n"
} else {
print "'$name' does not come after 'fred'.\n"
}
用户输入
从键盘上得到输入
$line = <STDIN>
if ($line eq "\n"){
print "That was just a blank line \n";
}else {
print "That line of input was: $line \n";
}
chomp操作
如果字符串结尾有换行符,chomp可以去掉它
$test = "a line of text \n";
chomp($text); #去掉换行符
chomp($text=<STDIN>); #读入,但不含换行符
while 控制结构
$count = 0;
while($count<10){
$count += 2;
print "count is now $count\n";
}
undef 值
变量在第一次赋值前有一个特殊的值undef
while($n<10){# n为undef, 自动转换为0
$num += $n;
}
defined 函数
能返回undef的操作之一是行输入操作,<STDIN>。通常,它会返回文本中的一行。但如果没有更多的输入,
如到了文件的结尾, 则返回undef.要分辨其实undef还是空串,可以使用defined函数, 它将在为undef返回false, 其余返回true。
$madonna = <STDIN>;
if ($defined($madonna)){
print "the input is $madonna!\n"
} else {
print "No input available!\n"
}
$madonna = undef;