Perl引用入门】的更多相关文章

在perl中只有3种基本的数据结构:标量.数组.hash.变量可以是数值,可以是字符串. 这三种基本数据结构的数据存储方式如下: 但是,仅仅由这3种基本结构,就可以构造出更复杂的数据结构,例如hash中用数组做value,数组中用hash做元素. 但是,perl对于底层的一些数据存储,很多时候对这些数据是直接拷贝存储的.而有些时候是没必要去拷贝数据的,通过引用,可以避免拷贝操作,哪里需要数据,用数据对象的引用即可,也就是插一个"指针"的事. 如何表示数组和hash的引用 引用就像是指针…
https://blog.csdn.net/fangwei1235/article/details/8570886 首页 博客 学院 下载 论坛 APP 问答 商城 活动 VIP会员 招聘 ITeye GitChat 图文课 写博客 消息 登录注册 转 perl 引用(数组和hash引用) 2013年02月05日 10:23:24 willorfang 阅读数 3396   转自:http://www.chinaunix.net/old_jh/25/504623.html 为推广perl尽一点力…
Perl 引用引用就是指针,Perl 引用是一个标量类型可以指向变量.数组.哈希表(也叫关联数组)甚至子程序,可以应用在程序的任何地方. 1.创建引用1.使用斜线\定义变量的时候,在变量名前面加个\,就得到了这个变量的一个引用.比如:# 数组的引用my@array= (1,2,3) ;my$aref=\@array ; #哈希的引用my%hash= ("name"=>"zdd","age"=>30,"gender"…
Perl语言入门: 斜线不是元字符,所以在不作为分隔符时不需要加上反斜线.…
引用就是C语言中的指针,perl引用是一个标量类型可以指向变量.数组.哈希表(也叫关联数组)甚至子程序,可以应用在程序的任何地方. 在变量前面加一个\就得到了这个变量的一个引用 #!usr/bin/perl $a=100; $a_=\$a; #标量的yinyong @arr=(1,2,3); $arr_=\$arr; #数组的yinyong %h=(key1=>'呵呵',key2=>'黑黑'); #哈希的引用 $h_=\%h; #打印标量 print "a=$$a_\n";…
1. 普通变量引用 variable reference 引用就好比C语言的指针,引用变量存储被引用变量的地址.赋值时注意要在变量前加上 \;使用时要多加一个 $ . 当然,引用也可以成为简单变量,可以使用引用的引用,使用时要记得多加一个$.引用也可以互相赋值 #!/usr/bin/perl -w my $variable="this is a reference test\n"; my $refv=\$variable; my $refr=\$refv; print "th…
写这篇是因为工作遇到一个需要使用列表作为hash的值的问题,这在Python中是非常简单而轻松的事,如下面这段python程序. def add_to_index(index, keyword, url): if keyword in index: index[keyword].append(url) else: index[keyword] = [url] 但在Perl中怎么办呢?答案是使用引用,同样轻松搞定. 创建引用 1.使用\操作符 #标量引用 ; my$sref=\$scalar ;…
---- 第6章 哈希----------- 简介 键值对.键和值都是任意标量,但键总是会被转换成字符串. 键唯一,值可重复. 应用场景:一组数据对应到另一组数据时. 如找出重复/唯一/交叉引用/查表等 访问哈希元素 $name{'fred'} = 'peng'; $name{'barney'} = 'guo'; foreach my $person (qw(barney fred)){ print "you are $person $name{$person}.\n"; } #胖箭头…
Perl 是 Practical Extraction and Report Language 的缩写,可翻译为 "实用报表提取语言". Perl语法基础: (1)Perl程序由声明和语句组成 (2)Perl程序自上而下执行 (3)Perl语句以分号(:)结尾,包括循环判断等语句 (4)Perl没有严格的格式规范,可以根据自己喜欢的方式缩进 第一个Perl程序: (1)交互式编程 perl -e 'print "hellow, wold"' 使用-e选项来执行Per…
现有文件test.txt,内容为:"123\n456" 1,打开文本test.txt #!/usr/bin/perl open d,"test.txt"; d 为文件句柄,指向打开的文件 2,逐行读取文本test.txt #!/usr/bin/perl open d,"< test.txt"; while(<d>){ print $_; } close d; 结果:123 456 或者:print <d>; 结果:同…
1.chop函数:删除标量变量或数组中每个字符的最后一个字 举个栗子: #!/usr/bin/perl $v = 'Flowers'; $r = chop($v); print "$v (without $r)\n";…
一.$ 简单变量:$          以$开头+字母或下划线 区分大小写,变量长度不限,没有关键字,但不能和默认变量重复 1.整数的表示: 12 12e2 #1200 -12 #-12 1_200_000     #perl可以使用下划线当做分隔符 数字还是1200000,但方便看 012           #八进制数,值为10 0x1f           #十六进制,值为31   f不分大小写 2.浮点数 11.4 0.3 .3 3. 5.4e2    e或E,+或-,e后面最多一到三位…
A.  手工安装 从CPAN下载了DBI模块1.13版的压缩文件DBI-1.13.tar.gz.假设放在/usr/local/src(一般需要编译安装的软件,都放在此目录下安装). # cd /usr/local/src   # tar xvzf DBI-1.13.tar.gz (这时候会创建一个去掉tar.gz这部分的文件夹)   # cd DBI-1.13 # perl Makefile.PL (生成makefile,无论什么包都是这个命令,什么包都会生成一个这个Makefile文件) # …
37 print "\n----------------------------------_exercise_6_1--------------------------\n";     38 my %bless_function = ( #hash may be a lexical variable     39    "constructors" => "default_values",     40    "error_ha…
第一章简介 问题与答案 这本书适合你吗? 为何有这么多的脚注? 关于习题和解答? 习题前标的数字是什么意思? 如果我是Perl讲师? “Perl”这个词表示什么意思? Larry为什么要创造Perl? Larry干吗不用其他语言? Perl算容易,还是算难? Perl怎么会这么流行? 现在的Perl发展得怎么样了? 哪些事情最适合用Perl来做? 哪些事情不适合用Perl来做? 如何取得Perl? CPAN是什么? 如何得到Perl的技术支持? 还有别的技术支持方式吗? 如果发现Perl有bug…
#! /usr/bin/perl use strict; use warnings; print "\n----------------------------------_substitutions_with_s///--------------------------\n";$_ = "He's out bowling with Barney tonight.";s/Barney/Fred/;print $_."\n";s/filehandl…
---------第十四章 字符串与排序------------------- index查找子字符串 my $stuff = "howdy world!"; my $where = index($stuff, "wor"); #6 #返回首个字符匹配的位置,字符串第一个位置为0,上例即wor匹配的w位置 #无法匹配返回-1 my $here = index($stuff,"w",2); #返回2(从2+1个字符开始) my $there = i…
----------第十章 其他控制结构---------------- unless结构 unless($fred =~ /\A[A-Z_\w*\z]/i){print "yes";} #等同 if(!($fred =~ /\A[A-Z_\w*\z]/i)){print "yes";} if($fred =~ /\A[A-Z_\w*\z]/i){}else{print "yes";} until结构 while的相反,条件为假时重复执行. 表达…
第一章 简介 perl -v 文字处理,编写小型CGI脚本(Web服务器调用程序)的最佳语言 CPAN: Perl综合典藏网 shebang: #! /usr/bin/perl 或#! /usr/local/bin/perl perldoc 第二章 标量 数字 1.25 -1.2e24 3 61_300_100 0377 #八进制 0xff #十六进制 ob1111111 #十六进制 运算符 + - * / % ** 单引号和双引号 'hello\n' #\n两个字符 "hello\n"…
数组的数组 $a = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] 哈希的哈希 my $student_properties_of = { 'zdd' => { 'age' => 30, 'hight' => 170, ', }, 'autumn' => { 'age' => 27, 'hight' => 165, ', } } ;…
读取标准输入 chomp($line = <STDIN>); #去掉后面的换行 while (defined($line = <STDIN>)) { print "I saw $line"; } #上面代码简写 while (<STDIN>) { print "I saw $_"; } 来自钻石操作符<> while (defined($line = <> )){ chomp($line); print &…
子程序定义和返回值 sub sum{ print "调用了子程序\n"; $a + $b; #后一行为返回值 } ; ; $s =∑ #34 调用子程序 子程序中的参数,参数固定(下面例子只能2参数),程序第一个参数为$_[0],第二个为$[1],依次类推 sub max { ] > ] ){ ]; }else{ ]; } } ,); #结果为15 子程序中私有变量 sub max { my($m,$n) = @_; } 限制参数长度 sub max{ ){ print &quo…
1-列表list指的是标题的有序集合, 而数组(array)则是存储列表的变量. 更精确地说,列表指的是数据,而数组指的是变量. 访问数组中的元素 ] = "yabba"; ] = "dabba"; ] = "doo"; $number = 2.71111; ]; #dabba 如果下标不是整数,会舍去小数. ] #如果不存在下标则返回 undef 特殊数组索引, 获得最后一个元素 ] = "one"; ] = 'last';…
$what ='steak'; print "fred ate $n ${what}s.\n"; 布尔值 如果是数字0为假, 如果是空字符串''为假, 如果即不是数字也不是字符串,那就先转成数字或字符串再行判断. 字符串'0'也为假 获取用户输入 $line = <STDIN>; 去除最右边换行 $text ="a line \n"; chomp($text); print $text; undef值 如果是数据相当undef值为0, 如果与字符串相加则…
hash 一.关联数组的形式 %h=('a',1,'b',2);         a是key 1是value    b是key  2是value 以%开头,()为空散列 %h=('a'=>1,'b'=>2);    更明显一些 用这个还可以省略引号  但默认全部都是字符串  当有数字的时候就不是你的本意了 元素形式:$h{'a'}       #注意用$ 元素为简单变量,用$. %h{2.5}  %{-1}  ${$ee} 都是可以的 小数  负数  简单变量都可以是key 二. 关联数组的赋…
1.列表也是数组的形式:(1,'a',2,3,4) 元素可以是任意类型,变量,表达式 2.空列表:() 单元素列表:(2)  .与值2不同 qw(1 $a str)   #qw是用空格作为分隔符,元素中不能有空格,否则视为两个元素,()可变为<> 3.范围运算符:.. 4.数组:列表的存储 形式:@a=(1,2,3) 与$a是不同的变量 @a的初始值是空 :() 元素形式:   $a[0]   #注意是$  美元符号 负索引:倒数第一是-1  $a[-1] 5.数组的赋值: @a=(1,2,3…
表达式真假值总结: 表达式不一定是逻辑表达式,但一定要得出真假值   假值:逻辑值为假 值为0 字符串为空 列表为空 undef 其他情况为真 1.if {} elsif {} else {} 2.unless : 与if条件含义相反.执行语句除非表达式为真.为真时退出,表达式是退出条件 3.while {表达式}{语句} 表达式为真时执行,是执行条件 认真设置条件为假的可能,否则无法退出 do{语句} while (表达式) 不管条件是什么,至少会执行一次 4.until {表达式}{语句}…
一.算数运算符 **:是幂 结果不能超过数的范围 当指数为小数时 底数不能为负数 %:取余数  两边的操作数为整数,如果不是则要截取,把所有的小数部分去掉 注意:当一个字符串参加运算,需要转化为整数时,如果不能转化为整数则值为零, '2'+1=3   'a'+1=1 二.数字比较运算符 大于小于等于   :比较结果为真或非零 ,假或零 <=> : 比较运算   $a <=> $b 当a大于b时:值为1 当a小于b时:值为-1 当a等于b时:值为0 用这个运算符的时候,自动把操作数转…
文件内容: bash-2.03$ cat file_4_ex_ch7.txt anonymous attribute demolition grammar rules indices refernces lignAAlign, ligning..AABB 代码: 80 print "\n----------------------------------exercise_ch7_4--------------------------\n";     81 while(<>)…
0.Perl书籍推荐 Perl书籍下载 密码:kkqx 下面是一些我学习Perl过程中读过完整的或部分章节的觉得好的书. 入门级别1:<Perl语言入门>即小骆驼 入门级别2:<Intermediate Perl>即羊驼 入门后复习:<beginning Perl> 系统性学习和进阶:<Pro Perl>(目前在读,是我整理.完善Perl的最佳书籍) Perl编码技巧:<Perl高效编程>(英文版Effective Perl Programmin…