Linux 版 (精华区)
发信人: tcpip (偶的昵称改了), 信区: Linux
标 题: 我所知道的Perl--变量1
发信站: 紫 丁 香 (Sat Feb 26 20:12:19 2000), 转信
****************************************************************************
本文不是perl的完整手册,这只是我的一点收集和整理.不能说是完整意义上的创作,听
前辈说写东西有两种境界,一种是写,一种是编.我是属于后者, 东拼西凑再加上自己使
用perl以来的体会,于是有了此文. 希望通过这个东西能让大家对perl有比较清晰的感
觉,更希望工大喜欢perl的人多起来.
本文可以随意转载(删改后请给我一份),但只限于网络媒体!
****************************************************************************
第二章 Perl 的变量(第一部分)
Perl没有名目繁多的变量,只有4种基本的,功能强大的数据类型,他们是:
1.Scalars (标量)
2.Arrays (数组)
3.Hashes (哈希变量)
4.Handles (句柄)
使用上极其简单,不需要声明,而且变量自身的类型还可以转变,这个在某种程度上说
是好事,但是有利必右弊,有时候它的类型可能并不是你想要的.好在大多数情况下你
不用担心这个问题.他们分别用$,@,%标示(句柄后面说).
这4种的使用就像这个样子:
$my_var="1234";
@my_var=(1,2,3,4);
%my_var={'key1'=>'value1','key2'=>'value2'};
$line=<STDIN>;
...
2.1标量
2.1.1 基本常识
标量是Perl中的最基本的变量,可以用他表示整数,字符串,浮点数,2进制,布
尔值...使用的时候只要赋给他值就可以,不用声明,类似
Scalars $my_var;
的形式完全没有必要.Perl中的标量没有边界限制,在Perl中每种变量都没有边界限制
不用担心溢出,申请的空间不够用之类的问题,Perl替你解决底层的东西,你的任务就是
一心一意的写程序.举几个例子.
1.
$int=32768;
$int++;
这时候$int++等于多少?C程序员可能说,如果你的机器是16位的,结果就会成为
-32767,而32位的机器则不会.实际上Perl总是返回32768,不管你用的是多少位
的机器.
2.
$string="a";
$string++; #$string is 'b'
$one=1+$string #$one will be 1
这涉及到了Perl的自动类型转换,字符都被当成0来处理,需要注意!
3.
$char="1234"; #这是字符串
$int=1234; #这是整数
$empty=""; #这是空字符串
4.
$a="ab";
$b=$a."cde"; #now $b will be "abcde"
另外,Perl对字符和数字的比较操作符不一样:
--------------------------------------------------------------------------
数字 字符
--------------------------------------------------------------------------
>,<,>=,<=,=,==,!= gt,lt,ge,le,ne,cmp,!
--------------------------------------------------------------------------
对数字还有+,-.*./,%,**,++,--,+=,-=,*=,/=,%=等操作.
2.1.2关于标量的函数
这里只列出常用的函数名,一般都可以顾名思义,详细的用法请参考Perl的在
线帮助.他们是:
length(),取长度
chop(),chomp(),去掉最后一个字符
substr(),取子串
uc(),lc(),大小写互换
ucfirst(),lcfirst(),第一个字母变为大(小)写
defined(),undef(),
grep(),搜索
--
"这一千多年没写诗了?"
"写了, 不过只写了两句."
"千年得两句, 一定是万古丽句了. 念来听听."
"好吧, 我现丑了" 太白星清了清嗓子, 浑厚的男中音在天庭响起:
大海啊, 都是水;
骏马啊, 四条腿;
※ 修改:.tcpip 于 Feb 26 20:15:08 修改本文.[FROM: tcpip.hit.edu.cn]
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: tcpip.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.611毫秒