Perl中常见符号意思

合集下载

PERL的经典用法

PERL的经典用法

Perl的经典用法<编者按:本月的专栏文章将介绍一些Perl的经典用法,以便帮助你创建短小精悍,可靠性更高的程序>perl复制文件夹use File::Copy qw(cp);cp"/dira/dfsdf","/dirb/sdfsdf/dddddd";我用system('cp source target'),如果我把程序移植到WINDOWS能否正确运行?use File::Copy;copy($original,$new_copy)or die"Copy failed:$!";学Perl有几本书要常备:1.Programming Perl2.Perl Cookbook3.Perl FAQ打印数据的方法:一:print"@array\n";二:for$row(@array){print"@$row\n";}三:for$row(0..$#array){print"row$row is:@{$geno_sample[$row]}\n";}用Open()函数打开文件打开文件的常用方法是:open(FH,"<$filename")or die"Couldn't open$filename for reading:$!";open()函数通常带有两个参数,第一个为文件句柄,用于指向打开的文件,第二个参数是文件名及模式(文件的打开模式)的混合体,如果文件被成功打开,open()函数返回true,否则为false。

我们用“or”来测试该条件。

上述代码中的模式由小于字符(<)来表示。

如果文件不存在,open()将返回false。

此时,你可以读文件句柄,但不可以写。

大于字符表示写。

如果文件不存在,就会被创建。

如果文件存在,文件被清除,以前的数据将会丢失。

perl包

perl包

perl 包我们经常落到使用拷贝和粘贴(ICP-I Copy & Paste)的陷阱里,而如果一个循环或者一个子过程就足够了,(注:这是伪懒惰的一种形式)那么这时候我们实际上应该定义一个更高层次的抽象。

但是,有些家伙却走向另外一个极端,定义了一层又一层的高层抽象,而这个时候他们应该用拷贝和粘贴。

(注:这是伪傲慢的一种形式。

)不过,通常来讲,我们大多数人都应该考虑使用更多的抽象。

落在中间的是那些对抽象深度有平衡观念的人,不过他们马上就开始写它们自己的抽象层,而这个时候它们应该重用现有的代码。

(注:你也许已经猜到了——这是为急燥。

不过,如果你准备推倒重来,那么你至少应该发明一种更好的东西。

)如果你准备做任何这样的事情,那么你都应该坐下来想想,怎样做才能从长远来看对你和你的邻居最有好处。

如果你准备把你的创造力引擎作用到一小块代码里,那么为什么不把这个你还要居住的这个世界变得更美好一些呢?(即使你的目的只是为了程序的成功,那你就要确信你的程序能够符合社会生态学的要求。

)朝着生态编程的第一步是:不要在公园里乱丢垃圾(译注:否则砸到小朋友...或者花花草草...:)。

当你写一段代码的时候,考虑一下给这些代码自己的名字空间,这样你的变量和函数就不会把别人的变量和函数搞砸了,反之亦然。

名字空间有点象你的家,你的家里想怎么乱都行,只要你保持你的外部界面对其他公民来说是适度文明的就可以了。

在 Perl 里,一个名字空间叫一个包。

包提供了基本的制作块,在它上面构造更高级的概念,比如模块和类等。

和“家”的说法相似,“包”的说法也有一些模糊。

包独立于文件。

你可以在一个文件里有许多包,或者是一个包跨越多个文件,就好象你的家可以是在一座大楼里面的小小的顶楼(如果你是一个穷困潦倒的艺术家),或者你的家也可以由好多建筑构成(比如你的名字叫伊丽沙白女王)。

但家的常见大小就是一座建筑,而包通常也是一个文件大,Perl 给那些想把一个包放到一个文件里的人们提供了一些特殊的帮助,条件只是你愿意给文件和包相同的名字并且使用一个 .pm 的扩展名,pm 是“perl module” 的缩写。

perl脚本基础总结

perl脚本基础总结

perl脚本基础总结1. 单引号字符串中的\n不会被当做换⾏符处理。

如:'\'\\' --> '\ 。

2. 双引号字符串联 "Hello"."World"."\n" --> HelloWrold 换⾏;字符串重复操作 "fred"×3 --> "fredfredfred";⼤⼩写 "\l","\L" --> ⼩写 ; "\u","\U" --> ⼤写 ; "\E" 结束。

3. 字符串运算== eq 相等!= ne 不等< lt ⼩于> gt ⼤于<= le ⼩于或等于>= ge ⼤于或等于4. ⽤户输⼊ <STDIN>5. chomp函数:去掉⽂本的"\n"换⾏符。

读写⽂件时,要去掉换⾏符。

如:chomp($text<STDIN>);6. 单⾏注释:# ; 多⾏注释以 "=pod"开始,"=cut" 结束。

7. undef:没有值时,表现为0或空字符串。

8. defined函数:为undef时,返回false,其余返回true。

9. x 输出遍数。

如:print "love" x 3 -->lovelovelove.10. 特殊数组索引:"$#rocks" ,最后⼀个元素索引。

11. qw简写,代替 "" 功能。

如:qw(freds bany wilad dino);12. @rocks=qw /break slasle labv/; #给数组赋值。

@copy=@qwarry; #将⼀个数组拷贝到另⼀个数组⾥。

Perl基本语法

Perl基本语法

1 基本输入输出在 BASH 脚本程序中,我们用 read var 来实现从键盘的输入,用 echo $var 来实现输出。

那么在 Perl 中将有一点变化。

Perl 中将标准输入用关键词表示;标准输出用表示,标准错误输出用表示。

故而从标准输入读取数据可以写成:$var=; # 读取一行输入,并存入变量 $var 中。

@var=; # 读取多行输入,并存入数组 @var 中。

在 Perl 语言中,变量 $_ 是许多操作符的缺省变量。

因此如果需要读入许多行并对每行分别处理一般这样写:while($_=){chop($_); # chop 调用用于去掉 $_ 变量中的最后一个字符(换行符)。

# 处理$_(每一行)}或者可以简写为:while(){chop; # 等同于chop($_)# 处理$_(每一行)}如果 <> 括号之间没有任何字符,则表示从命令行所指示的文件中读取数据,看下面这个例子(read.pl):#!/usr/bin/perl;while(<>){print $_;}如果在命令行输入 $ perl read.pl read.pl 。

这个程序将在屏幕上打印出文件 read.pl 的每一行。

在前面的例子中我们已经看见,Perl 语言中向标准输出输出数据可以用 print 语句。

我们在 print 语句中可以输出多个变量,变量之间用 "," 分隔开来。

如下面的例子:print 3,45*2,"hello",2+2;上面的输出语句将给出 "390hello4" 的输出结果。

除了 print 语句以外,Perl 中还提供了一个 printf 语句用于标准输出,不过 printf 更接近于 C 语言的 printf 函数,可以进行格式化的输出,如:printf "%10s% 8d%8.2f\n",$a,$b,$c;printf("%10s% 8d%8.2f\n",$a,$b,$c); # 加上括号的 C 语言写法也是可以的。

标点符号中英对照表

标点符号中英对照表

Along Zeng CDMA_BTS, R&D, GDNT ESN:6-554-8752
2.算术符号表
符号 + * / % ** e/E ++ -英文说明 addition subtraction/negative multiplication division modulus exponential a power-of-10 indicator autoincrement autodecrement 中文说明 加法运算 减法运算/取负 乘法运算 除法运算 取模运算 > <= >= 英文说明 equal to not equal to less than greater than less than or equal to greater than or equal to 中文说明 等于 不等于 小于 大于 小于等于 大于等于
英文读法:
2+3 5.1 - 2.4 3 * 12
2 plus 3 5.1 minus 2.4 3 times 12
14 / 2 -12e-24
14 divided by 2 neagtive 12 times 10 to the -24th
对于++和--又分前缀和后缀,在 Perl 中称为 preincrement/predecrement 和 postincrement/postdecrement。
5.位运算符号表
符号 英文说明 中文说明
符号 & | ^ << >> ~
英文说明 bitwise-and operator bitwise-or operator bitwise-xor operator bitwise shift left bitwise shift right bitwise negation(unary bit complement)

perl eq用法

perl eq用法

perl eq用法Perl中的eq操作符是用来比较两个字符串是否相等的操作符。

它是一种字符串比较操作符,与其他的比较操作符(如>、<等)不同,它不会将字符串转换成数字进行比较,而是直接比较字符串本身。

eq操作符的使用方法与其他操作符类似,格式为“字符串1 eq 字符串2”。

如果两个字符串相等,则返回真(1),否则返回假(0)。

下面是eq操作符的一些示例:例一:比较两个字符串是否相等。

$var1 = "Hello world";$var2 = "hello world";if($var1 eq $var2){print "两个字符串相等";}else{print "两个字符串不相等";}输出结果:两个字符串不相等例二:将字符串转换成数组,然后比较。

$var1 = "apple,banana,orange";$var2 = "apple,banana,orange";@arr1 = split(",",$var1);@arr2 = split(",",$var2);# 比较两个数组是否相等if (@arr1 eq @arr2){print "两个数组相等";}else{print "两个数组不相等";}输出结果:两个数组相等除了eq操作符,还有另外两个字符串比较操作符:ne和cmp。

ne 操作符与eq操作符相反,当两个字符串不相等时返回真(1),否则返回假(0)。

cmp操作符则是用来比较两个字符串的大小关系,与其他比较操作符类似,返回值为-1、0或1。

总之,eq操作符是Perl中用来比较两个字符串是否相等的操作符,它非常实用,可以使用在不同的场景中,能够更有效地处理字符串的比较工作。

Perl5教程

Perl5教程
安装过程为: (1)解 压 : $gunzip perl-5.004.tar.gz $tar xvf - <perl-5.004.tar.gz (2)编 译 : $make makefile
(3)放 置 : 将编译生成的可执行文件拷贝到可执行文件通常所在目录, 如: $copy <compiled excutable file> /usr/local/bin/perl 注:这需要系统管理员权限。
第十四章 Perl5 的包和模块
一、require 函数 1、require 函数和子程序库 2、用 require 指定 Perl 版本
二、包 1、包的定义 2、在包间切换 3、main 包 4、包的引用 5、指定无当前包 6、包和子程序 7、用包定义私有数据 8、包和系统变量 9、访问符号表
三、模块 1、创建模块 2、导入模块 3、预定义模块
第十二章 Perl5 中的引用(指针)
一、引用简介 二、使用引用 三、使用反斜线(\)操作符 四、引用和数组 五、多维数组 六、子程序的引用
子程序模板 七、数组与子程序 八、文件句柄的引用
第十三章 Perl 的面向对象编程
一、模块简介 二、Perl 中的类 三、创建类 四、构造函数
.实例变量 五、方法 六、方法的输出 七、方法的调用 八、重载 九、析构函数 十、继承 十一、方法的重载 十二、Perl 类和对象的一些注释
.与 脚 本 语 言 一 样 , Perl 不 需 要 编 译 器 和 链 接 器 来 运 行 代 码 , 你 要 做 的 只 是 写 出 程 序 并 告 诉 Perl 来 运 行 而 已 。 这 意 味 着 Perl 对于小的编程问题的快速解决方案和为大型事件创建原型来测 试潜在的解决方案是十分理想的。

字符串符号

字符串符号

字符串符号字符串是计算机编程中常用的数据类型之一,用于表示文本或字符序列。

在字符串中,可以使用一些特殊的符号或字符来表示特定的含义或实现特定的操作。

以下是一些常见的字符串符号:1. 引号:字符串通常使用引号括起来,以标识字符串的开始和结束。

常见的引号符号包括单引号(')和双引号(")。

例如:"Hello, World!" 或者'This is a string.'2. 转义字符:转义字符用于在字符串中表示特殊字符或具有特殊含义的字符。

转义字符通常以反斜杠(\)开头,后面跟着一个特定的字符。

常见的转义字符包括:- \n:表示换行符- \t:表示制表符- \r:表示回车符- \\:表示反斜杠字符- \":表示双引号字符- \':表示单引号字符3. 占位符:占位符用于在字符串中动态插入变量或值。

在不同的编程语言中,占位符的表示方式可能略有不同,但常见的占位符符号包括百分号(%)和大括号({})。

例如,"My name is %s." 或者"The result is {}."4. 加号(+):加号可以用于字符串的连接,将两个或多个字符串拼接在一起形成新的字符串。

例如,"Hello" + "World" 结果为"HelloWorld"。

5. 下标符号([]):下标符号可用于访问字符串中的单个字符或子字符串。

在大多数编程语言中,字符串的下标从0开始计数。

例如,str[0] 表示字符串str 的第一个字符。

这些字符串符号在不同的编程语言中可能有细微的差异,具体使用时请参考相应编程语言的文档或规范。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Perl中常见操作
注释:
1.单行: #print
2.多行:=pod …. =cut
查询perl相关:
Perldoc perlvar($a,$$,$”...)
Perldoc perfunc(sort…)
Perldoc perl 查看perldoc文章列表
Perldoc –q 正则表达式
Perldoc –f 函数名
Perldoc module_name 查看模块
Perldoc –v 变量名查看变量
Perldoc perlop 查看操作符
查看模块相关函数:
1.Perl –d –e 0
e module::submod
3.S module::submod
测试程序运行时间:
1.Unix下:Time perl5 perl_program
2.程序内添加:$end_time = time();$elapsed_time = $^T - $end_time; print $elapsed_time;
3.perl程序内使用benchmark模块: use benchmark; timestamp1 = new benchmark; {Code};timesamp2 = new benchmark; time_run = timediff(timestamp2 - timesamp1); 符号:
<=> Spaceship operator,太空船操作符:三向的比较数字操作符。

$a<=>$b 这个操作符比较两个数字,返回-1,0,1。

返回1:$a>$b,返回0:$a=$b,返回-1:$a<$b。

$a,$b在sort中使用时代表第一个和第二个进来的标量或数组等
$! 根据上下文内容返回错误号或者错误串
$”列表分隔符
$# 打印数字时默认的数字输出格式
$$ Perl解释器的进程ID
$% 当前输出通道的当前页号
$& 与上个格式匹配的字符串
$( 当前进程的组ID$) 当前进程的有效组ID
$* 设置1表示处理多行格式.现在多以/s和/m修饰符取代之.
$, 当前输出字段分隔符
$. 上次阅读的文件的当前输入行号
$/ 当前输入记录分隔符,默认情况是新行
$: 字符设置,此后的字符串将被分开,以填充连续的字段.
$; 在仿真多维数组时使用的分隔符.
$? 返回上一个外部命令的状态
$@ Perl解释器从eval语句返回的错误消息
$[ 数组中第一个元素的索引号
$\ 当前输出记录的分隔符
$] Perl解释器的子版本号
$^ 当前通道最上面的页面输出格式名字
$^A 打印前用于保存格式化数据的变量
$^D 调试标志的值
$^E 在非UNIX环境中的操作系统扩展错误信息
$^F 最大的文件捆述符数值
$^H 由编译器激活的语法检查状态
$^I 内置控制编辑器的值
$^L 发送到输出通道的走纸换页符
$^M 备用内存池的大小
$^O 操作系统名
$^P 指定当前调试值的内部变量
$^R 正则表达式块的上次求值结果
$^S 当前解释器状态
$^T 从新世纪开始算起,脚步本以秒计算的开始运行的时间
$^V perl版本
$^W 警告开关的当前值
$^X Perl二进制可执行代码的名字(perl指令)
$_ 默认的输入/输出和格式匹配空间
$| 控制对当前选择的输出文件句柄的缓冲
$~ 当前报告格式的名字
$` 在上个格式匹配信息前的字符串
$’在上个格式匹配信息后的字符串
$+ 与上个正则表达式搜索格式匹配的最后一个括号
$< 当前执行解释器的用户的真实ID
$ 含有与上个匹配正则表达式对应括号结果
$= 当前页面可打印行的数目
$> 当前进程的有效用户ID包含正在执行的脚本的文件名
$ARGV 从默认的文件句柄中读取时的当前文件名
%ENV 环境变量列表
%INC 通过do或require包含的文件列表
%SIG 信号列表及其处理方式
@_ 传给子程序的参数列表
@ARGV 传给脚本的命令行参数列表
@INC 在导入模块时需要搜索的目录列表
$-[0]和$+[0] 代表当前匹配的正则表达式在被匹配的字符串中的起始和终止的位置
while(){
my($date,$desc,$income,$expend) = unpack(“A10xA27xA7xA*”);
}
简单说明:
A10: A表示ASCII,A10表示10个ASCII character, Date的表示就是用10个ASCII码; x : x表示null byte也等于skip a byte,也就是说我们要跳过一个char(|),
A27: 然后接着27个ASCII char,
x : 然后跳过一个vhar,
A7 : 再接上7个ASCII,
x : 在跳过一个char,
A* : 最后A*表示不管后面char有多少个,全含括进来。

相关文档
最新文档