Linux 版 (精华区)

发信人: tcpip (偶的昵称改了), 信区: Linux
标  题: 我所知道的Perl--变量2
发信站: 紫 丁 香 (Sat Feb 26 20:14:57 2000), 转信

****************************************************************************
本文不是perl的完整手册,这只是我的一点收集和整理.不能说是完整意义上的创作,听
前辈说写东西有两种境界,一种是写,一种是编.我是属于后者, 东拼西凑再加上自己使
用perl以来的体会,于是有了此文. 希望通过这个东西能让大家对perl有比较清晰的感
觉,更希望工大喜欢perl的人多起来.
       本文可以随意转载(删改后请给我一份),但只限于网络媒体!
****************************************************************************
第二章 Perl 的变量(第二部分)
2.2 数组

2.2.1  基本常识
    数组可以说是标量的组合,序号从0开始,大小没有限制,可以动态的添加,随意
申请,但是要小心你的内存,很可能Perl为了给你分配数组空间的时候用光了你的内存,
Windows下容易死机.数组用@标示.使用上和标量类似.如:
  1.@array=(1,2,3,4,5,6,7,8,9);
  2. @array=(1..9);
这两个等价,从中可以发现Perl在易用快速方面做了多少工作.对于@array这个数组来说,
$array[0]=1,$array[1]=2,注意:这里用'$'.
  3.@array[1,2,3]=@array[3,2,1],猜猜它做了什么?交换?猜对了!结果是什么?自己试
试看就知道了.
  4.$length=@array,这又做了什么?不用猜了,$length保存了@array的元素个数.

2.2.2  常用函数
   push(),pop(),末尾压/弹元素
   shift(),unshift(),开头取/加元素
   splice(),对数组中间操作
   split(),分割
   reverse(),颠倒排序
   join(),数组变标量
   undef(),清空
   chop(),chomp(),
   sort(),排序

2.3 哈希变量            
   
2.3.1 基本常识
    哈希变量也是标量的组合,不同的是,这里有键和值的对应关系.使用上同样不用担心
大小,越界问题,随用随申请.例如:
  1.%hash={'key1','value1','key2','value2'},       
    %hash={'key1'=>'value1','key2'=>'value2'}, 
    这两个等价,但是Perl4并不支持第二种形式.
  2.%hash{'key1'}='value1'
    这是哈希的附值.      
需要注意的是,哈希的内部存储格式和附值的次序无关,在哈希内部没有次序的概念,对它的
操作要通过keys(),values(),each(),delete(),undef(),exist()等函数来操作.对哈希的
直接打印不会有任何结果.

2.4 句柄

2.4.1 基本常识
    对Unix类操作系统来讲,句柄是一个必不可少的东西,很多实现都要通过句柄来操作,对
文件,对进程,对目录,对socket等等都是通过句柄来完成的,Perl当然不能少了这方面的能力!
Perl提供了文件句柄和目录句柄来实现这些.句柄用大写来识别.使用时如下:
  1.open(IN,"<filename");
    这将会打开filename文件,和句柄IN联系,打开为读方式,如果换成'>',则为写方式,同时
    还有'>>'的填加写方式.
  2.open(IN,"process |");  
    将打开process进程来读,同样'|'置前则为写.前面我利用这个方法写了一个bbs自动登陆
    的东西,可以实现登陆机器人,防发呆等功能.十分有效.
  3.$line=<IN>;
    这实现了从IN句柄中读一行
  4.@array=<IN>;
    这则将IN中所有的内容读到@array中,但要小心你的内存!
  5.print OUT $line;
    print OUT @array;
    则是往OUT句柄里写
  6.close IN;
    关闭句柄  
注意,虽然Perl在退出的时候会帮你关闭句柄,但是显示的关闭是一个好习惯!      


小结:
    Perl的数据类型只有这几种,他们还可以组合,比如在哈希中值为另一个哈希结构等等.但
这些不常用到,本文也不是Perl的详细教程,不在详述.      

--
"这一千多年没写诗了?"
"写了, 不过只写了两句."
"千年得两句, 一定是万古丽句了. 念来听听."
"好吧, 我现丑了" 太白星清了清嗓子, 浑厚的男中音在天庭响起:
大海啊, 都是水;
骏马啊, 四条腿;

※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: tcpip.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.310毫秒