Scalar Data

Perl有种奇妙的东西叫做“scalar”,无论是数字或字符串,只要数量为1,都称为标量。这是Perl操作的最简单数据类型。

数字

  • 所有数字在内部都以双精度浮点型存储。
  • 八进制以0为首,十六进制以0x为首,二进制以0b为首。
  • 复杂计算时可以使用模块 Math::Complex

字符串

  • 如果需要使用Unicode use utf8;
  • 用单引号括起来的字符串中,除了\和’,其他符号都表示其自身。如果想表达\用\\,而’则用\’代替;
  • 双引号括字符串则能完全活用\;
  • 字符串之间的连接符为 . ;
  • 用符号x可以重复字符串,字符串x重复次数;

数字与字符串之间的自动转换

  • Perl根据操作符应有的操作数类型来辨别数值或字符串。

"12fred34"*"3" #that's 12*3
0377 #that's octal for 255 decimal
'0377' #that's 377 decimal
"Z" . 5 * 7 #Z35

警告

  • use warnings;
  • $ perl -w my_program
  • use diagnostics;
  • $ perl -Mdiagnostics my_program -M使只有必要时才使用诊断功能。

标量

  • 以$开始,称为sigil,含义为single item 或者 scalar。
  • 类似C,双目赋值操作符号可行。
  • print $fred; # better style than print "$fred"
  • print $what."s.\n";
  • print "${what}s.\n";
  • 数字0,空字符串,字符串’0’代表false;其余为真。
  • $line=<STDIN>;,每当使用STDIN,Perl会从输入读入一整行(直到换行符);
  • $line=<STDIN>; chomp($line);
  • chomp($line=<STDIN>);
  • 标量不赋值时,作为特殊的数据类型undef。非数值非字符,但可做0可为空字符串。
  • 如何分辨undef和空字符串=>defined($test),返回0则为未定义。
  • $test=undef; # As if it had never been touched
ComparisonNumericString
==eq
!=ne
<lt
>gt
<=le
>=ge

对于python

  • 拼接字符串用+;
  • str,repr和反引号是将Python值转换为字符串的3种方法。函数str让字符串更易于读,而repr和反引号则把结果字符串转换为合法的Python表达式。
  • input会假设用户输入的是合的Python表达式;raw_input函数则会把所有的输入当作原始数据,然后将其放入字符串中;
name = input("What's your name?") #输入为"Jack"时正常
name = raw_input("What's your name?") #输入Jack即可
  • Unicode用u作为前缀: u"Hello,world!";
  • 原始字符串对\并不会特殊对待。在原始字符串中输入的每个字符都会与书写的方式保持一致。print r'C:\Program Files\';
  • 如果需要写一个非常长的字符串,需要跨行,那么使用三个引号代替普通引号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值