标量数据

标量数据

标量在大多数情况下不是数字就是字符串
所有数字的内部格式都是一致的,不管是整数和浮点数, 在内部, 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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值