选择显示字体大小

perl实例分析教程之十五

perl中的“引用”一、引用简介 二、使用引用 三、使用反斜线()操作符 四、引用和数组 五、多维数组 六、子程序的引用七、数组与子程序 八、文件句柄的引用 一、引用简介 引用就是指针,可以指向变量、数组、哈希表(也叫关联数组)甚至子程序。pascal或c程序员应该对引用(即指针)的概念很熟悉,引用就是某值的地址,对其的使用则取决于程序员和语言的规定。在perl中,可以把引用称为指针,二者是通用的,无差别的。引用在创建复杂数据方面十分有用。 perl5中的两种引用类型为硬引用和符号引用。符号引用含有变量的名字,它对运行时创建变量名并定位很有用,基本上,符号引用就象文件名或unix系统中的软链接。而硬引用则象文件系统中的硬链接。 perl4只允许符号引用,给使用造成一些困难。例如,只允许通过名字对包的符号名哈希表(名为_main{})建立索引。perl5则允许数据的硬引用,方便多了。 硬引用...

http://www.sosof.com/detail/288/90728823618830.html -by - 丰搜 缓存页面


perl实例分析教程之十四

十、用关联数组创建数据结构 用关联数组可以模拟在其它高级语言中常见的多种数据结构,本节讲述如何用之实现:链表、结构和树。 2、结构 许多编程语言可以定义结构(structure),即一组数据的集合。结构中的每个元素有其自己的名字,并通过该名字来访问。 perl不直接提供结构这种数据结构,但可以用关联数组来模拟。例如模拟c语言中如下的结构: struce{ int field1; int field2; int field3; }mystructvar; 我们要做的是定义一个含有三个元素的关联数组,下标分别为field1、field2、field3,如: %mystructvar = ("field1" , "" , "field2" , "" , "field3" , "" ,); 像上面c语言的定义一样,这个关联数组%mystrctvar有三个元素,下标分别为field1、field2...

http://www.sosof.com/detail/288/63728823625738.html -by - 丰搜 缓存页面


perl实例分析教程之十三

十、用关联数组创建数据结构 用关联数组可以模拟在其它高级语言中常见的多种数据结构,本节讲述如何用之实现:链表、结构和树。 1、(单)链表 链表是一种比较简单的数据结构,可以按一定的次序存贮值。每个元素含有两个域,一个是值,一个是引用(或称指针),指向链表中下一个元素。一个特殊的头指针指向链表的第一个元素。 在perl中,链表很容易用关联数组实现,因为一个元素的值可以作为下一个元素的索引。下例为按字母顺序排列的单词链表: %words = ("abel", "baker", "baker", "charlie", "charlie", "delta", "delta", ""); %24header = "abel"; 上例中,简单变量%24header含有链表中第一个单词,它同时也是关联数组第一个元素的下标,其值baker又是下一个元素的下标,依此类推。 下标为delta的最后一个元素的值为空串...

http://www.sosof.com/detail/288/13228823629672.html -by - 丰搜 缓存页面


perl实例分析教程之十二

六、从数组变量复制到关联数组 与列表一样,也可以通过数组变量创建关联数组,当然,其元素数目应该为偶数,如: @fruit = ("apples",17,"bananas",9,"oranges","none"); %fruit = @fruit; 反之,可以把关联数组赋给数组变量,如: %fruit = ("grapes",11,"lemons",27); @fruit = %fruit; 注意,此语句中元素次序未定义,那么数组变量@fruit可能为("grapes",11,"lemons",27)或("lemons",27,"grapes",11)。 关联数组变量之间可以直接赋值,如:%fruit2 = %fruit1; 还可以把数组变量同时赋给一些简单变量和一个关联数组变量,如: (%24var1, %24var2, %myarray) = @list; 此语句把@list的第一个元素赋给%24v...

http://www.sosof.com/detail/288/91628823631923.html -by - 丰搜 缓存页面


perl实例分析教程之十一

四、增加元素 创建一个关联数组元素最简单的方法是赋值,如语句%24fruit{"bananas"} = 1; 把1赋给关联数组%fruit下标为bananas的元素,如果该元素不存在,则被创建,如果数组%fruit从未使用过,也被创建。 这一特性使得关联数组很容易用于计数。下面我们用关联数组改写上面的程序,注意实现同样的功能此程序简化了许多。 1 : #!/usr/local/bin/perl 2 : 3 : while (%24inputline = ) { 4 : while (%24inputline =~ /b[a-z]s+/g) { 5 : %24word = %24&; 6 : %24word =~ s/[;.,:-]%24//; # remove punctuation 7 : %24wordlist{%24word} += 1; 8 : } 9 : } 10: print ("capitalized...

http://www.sosof.com/detail/288/90928823633308.html -by - 丰搜 缓存页面


perl实例分析教程之十

一、数组变量的限制 在前面讲的数组变量中,可以通过下标访问其中的元素。例如,下列语句访问数组@array的第三个元素: %24scalar = %24array[2]; 虽然数组很有用,但它们有一个显著缺陷,即很难记住哪个元素存贮的什么内容。假如我们来写一个程序计算某文件中首字母大写的单词出现的次数,用数组来实现就比较困难,程序代码如下: 1 : #!/usr/local/bin/perl 2 : 3 : while (%24inputline = ) { 4 : while (%24inputline =~ /b[a-z]s+/g) { 5 : %24word = %24&; 6 : %24word =~ s/[;.,:-]%24//; # remove punctuation 7 : for (%24count = 1; %24count <= @wordlist; 8 : %24count++) { 9 : %24...

http://www.sosof.com/detail/882/8228823636707.html -by - 丰搜 缓存页面


perl实例分析教程之九

六、递归子程序 perl中,子程序可以互相调用,其调用方法与上述相同,当调用该子程序本身时,即成了递归子程序。递归子程序有两个条件:1、除了不被子程序改变的变量外,所有的变量必须的局部的;2、该子程序要含有停止调用本身的代码。 七、用别名传递数组参数 1、用前面讲到的调用方法&my_sub(@array)将把数组@array的数据拷贝到子程序中的变量@_中,当数组很大时,将会花费较多的资源和时间,而用别名传递将不做这些工作,而对该数组直接操作。形式如: @myarray = (1, 2, 3, 4, 5); &my_sub(*myarray); sub my_sub { my (*subarray) = @_; } 2、此方法类似于c语言中的传递数组的起始地址指针,但并不一样,在定义数组的别名之后,如果有同名的简单变量,则对该变量也是起作用的。如: %24foo = 26; @...

http://www.sosof.com/detail/288/80528823637689.html -by - 丰搜 缓存页面


perl实例分析教程之八

一、定义 子程序即执行一个特殊任务的一段分离的代码,它可以使减少重复代码且使程序易读。perl中,子程序可以出现在程序的任何地方。定义方法为: sub subroutine{ statements; } 二、调用 调用方法如下: 1、用&调用 &subname; ... sub subname{ ... } 2、先定义后调用 ,可以省略&符号 sub subname{ ... } ... subname; 3、前向引用 ,先定义子程序名,后面再定义子程序体 sub subname; ... subname; ... sub subname{ ... } 4、用do调用 do my_sub(1, 2, 3);等价于&my_sub(1, 2, 3); 三、返回值 缺省的,子程序中最后一个语句的值将用作返回值。语句return (retval);也可以推出子程序并...

http://www.sosof.com/detail/288/91828823639520.html -by - 丰搜 缓存页面


perl实例分析教程之七

一、条件判断 if ( ) { } elsif ( ) { } ... else{ } 二、循环: 1、while循环 while ( ) { } 2、until循环 until ( ) { } 3、类c的for循环 ,如 for (%24count=1; %24count <= 5; %24count++) { # statements inside the loop go here } 下面是在for循环中使用逗号操作符的例子: for (%24line = , %24count = 1; %24count <= 3; %24line = , %24count++) { print (%24line); } 它等价于下列语句: %24line = ; %24count = 1; while (%24count <= 3) { print (%24line); %24line = ; %24count++; } 4、针对列表(数...

http://www.sosof.com/detail/288/22128823642743.html -by - 丰搜 缓存页面


perl实例分析教程之六

3、列表范围: (1..10) = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) (2, 5..7, 11) = (2, 5, 6, 7, 11) (3..3) = (3) .用于实数 (2.1..5.3) = (2.1, 3.1 ,4.1, 5.1) (4.5..1.6) = () .用于字符串 ("aaa".."aad") = ("aaa","aab", "aac", "aad") @day_of_month = ("01".."31") .可包含变量或表达式 (%24var1..%24var2+5) .小技巧: %24fred = "fred"; print (("hello, " . %24fred . "!n") x 2); 其结果为: hello, fred! hello, fred! 4、数组的输出: (1) @array = (1, 2, 3); print (@arra...

http://www.sosof.com/detail/288/54728823646139.html -by - 丰搜 缓存页面


上一页 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 下一页

 


相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons