perl 语言学习总结
.#!/usr/bin/perl -w 内建警告信息,Perl发出警告
.字符串 . 连接符
.重复次数 "fred" x
.字符串与数字之间的自动转换
.$变量 赋值 $fred =; + += *= .= not and or xor
.print 输出
.比较字符 数值 == != < > <= >=
字符串 eq ne lt gt le ge
. if($i < ){}else{} while(){}
.chomp 去除字符串尾的一个换行符
.数组 未初始化的数组值为undef
$#i表示最后一个元素的索引值 支持负数索引 最后一个为-1
.qw 简写,省掉列表中的 , qw( )
.@ all of the 数组的全部
@rocks=qw/ /
@tiny = ( );
@gint = ..1e5
@ee = ‘qwwewe’
.pop和push 操作数组的最后一个元素 pop @array push(@array,)
shift 和unshift 操作第一个元素
.foreach $rock(@rock){}
.$_老地方
.reverse(@fred) sort(@rock)
,。强制上下文 scalar @rock
.@lines = <STDIN>;
.子程序 sub关键字
eg:定义 sub fun{
$n+=;
print "hello";
&n;//最后一次运算结果为返回值
}
调用 &fun; 可以省略&号
print 语句的返回值为1,表示输出成功
函数参数:
$n = &max(,);
sub max{
if($_[]>$_[]){
$_[];
}else{
$_[];
}
} .my 定义私有词法变量 @_全局变量
my 不使用括号时,只用来声明单个词法变量
sub max{
my($m,$n);
($m,$n) = @_;//将保存在@_中的参数赋值给具体变量
if($m>$n){$m} else{$n}
} if(@_ != ) 元素个数小于2 ??? 适应任意参数的max程序
sub max{
my($myx_so_far) = shift @_;
foreach(@_){
if($_ >$max_so_far){
$max_so_far = $_;
}
}
$max_so_far;
} 对于空参数返回undef
所有新变量一开始都是空的,标量被设为undef,数组被设为空列表
.use strict 编译命令 让Perl更严格一些
要求一定要用my来声明每个新的变量
. return 子程序立即返回
. state 静态变量
.输入输出
while(defined($line=<STDIN>)){
print "I saw $line";
}
<>钻石操作 从用户指定的位置读取。
while(<>){
chomp;
print "$_";
}
.@ARGV 命令行参数
.copy("a","b") 将a拷贝成b
.truncate (filename, length);
将文件的长度减少到length字节。如果文件长度已经小于length,则不做任何事
.seek (file,dis,relative_to) 文件中移动 relative( 开头, 当前,2末尾)
.print 文件写入字符串
.unlink (filelist) 删除文件
.open
:读:open(文件句柄,"<文件名")/open(文件句柄,"文件名"),前提文件必须已经存在,否则会返回0,出错信息在$!中。
:写:open(文件句柄,">文件名"),文件如果不存在,那么创建之,如果存在,内容被清空,长度截为0,$!中有出错信息。
:追加:open(文件句柄,">>文件名"),基本同写,但有一点,文件中的内容不会被清空,新的内容会追加到原文后面。
:读写:open(文件句柄,"+<文件名"),通过“+<”模式,你可以既可以读文件,又可以写文件。你可以通过tell() 函数在文件内部移动,通过seek()函数进行定位。如果文件不存在,就会被创建。如果文件已经存在,原来的数据不会被清除。
open(文件句柄,"+>文件名"),通过“+》”模式,可以同时读写文件,但与上面不同的是,它是破怀性写,会清除原来的内容。
例子:
my $conf = "D:/test.txt"; if(-e $conf) #判断文件是否存在
{
open(FILE, "<$conf") or die("No such file"); while($LINE = <FILE>) #读取文件
{
print $LINE;
push(@del,$LINE);
}
close(FILE);
perl 语言学习总结的更多相关文章
- Perl语言学习笔记 15 智能匹配与give-when结构
1.智能匹配操作符 替代绑定操作符: 在哈希中查找某一个键: 比較两个数组是否全然同样: 查找列表中是否存在某个元素: 智能匹配操作符与顺序无关.~~ 左右元素能够互换 2.智能操作符优先级 3.gi ...
- Perl语言学习笔记 9 正则表达式处理文本
1.更换 s/PATTERN/REPLACE/; #返回是否更换成功布尔值 能够使用捕获变量,如:s/(\w)/$1/ 匹配失败则不做不论什么处理 2.定界符 对于没有左右之分的定界符.反复三次就可以 ...
- Perl语言
Perl是高级.通用.直译式.动态的程序语言家族.最初设计者拉里·沃尔(Larry Wall)为了让在UNIX上进行报表处理的工作变得更方便,决定开发一个通用的脚本语言,而在1987年12月18日发表 ...
- perl语言书籍教程推荐
互动出版网计算机频道.为您推荐关于perl语言的书籍教程.包括perl push.perl chomp以及perl python等perl语言内容. perl语言书籍一.<Perl语言编程 第四 ...
- 边看MHA源码边学Perl语言之一开篇
边看MHA源码边学Perl语言之一开篇 自我简介 先简单介绍一下自己,到目前为此我已经做了7年左右的JAVA和3年左右php开发与管理,做java时主要开发物流行业的相关软件,对台湾快递,国际快递,国 ...
- C语言学习建议!8年编程开发经验
C语言是几乎所有编程语言的先驱与灵感的来源,Perl,PHP,Python和Ruby都是用它写的,同样什么Microsoft Windows,Mac OS X,还有GNU/Linu这些操作系统,都是靠 ...
- C语言学习 第八次作业总结
本次作业其实没有新的内容,主要就是复习上一次的一维数组的相关内容.冯老师布置了5道题目,其中涉及到一些比较简单的排序或者是查找的方法.因为数据很少,所以直接使用for循环遍历就可以了. 关于本次作业, ...
- C语言学习 第七次作业总结
C语言学习 第七次作业总结 数组可以分为数组和多下标数组(在传统的国内C语言书本中,将其称为二/多维数组). 数组名称 在之前的课程中,大家应该都有印象,对于int a这样的定义,会为变量 a 声明一 ...
- 技能收获与C语言学习
你有什么技能比大多人(超过90%以上)更好? 我会的东西很多,喜欢的东西太多,但是很遗憾广而不专,会而不精.学了很多东西我都是为了娱乐,因为以前我们那里过于强调学习,很多爱好也都被扼杀在摇篮里.我觉得 ...
随机推荐
- sql字符串处理
sql字符串截取 substring(ParamName,start,length) start开始位置,length结束位置 DECLARE @Tel NVARCHAR(20) SET @Tel=' ...
- WCF TCP通信方式 通过IIS承载调试
http://www.cnblogs.com/nikymaco/archive/2012/10/08/2715954.html IIS Express服务器只支持http/https,不支持net.t ...
- apache common包 CollectionUtils 使用 详解
集合判断: 例1: 判断集合是否为空: CollectionUtils.isEmpty(null): true CollectionUtils.isEmpty(new ArrayList()): t ...
- linux下性能监控工具
一. Linux 性能监控的概述 系统由若干子系统构成,通常改动一个子系统有可能影响到另外一个子系统.甚至会导致整个系统不稳定.崩溃. 所以说优化.监測.測试一般是连在一起的,并且是一个循环并且长期 ...
- spring + jodd 实现文件上传
String tempDir = SystemUtil.getTempDir(); // 获得系统临时文件夹 String prefix = UUID.randomUUID().toString(). ...
- android 底部菜单栏实现(转)
1.Android学习之BottomNavigationBar实现Android特色底部导航栏 2.Android底部导航栏的四种实现 3.Android BottomNavigationBar底部导 ...
- NoSQL数据库介绍(4)
4 键/值存储 讨论了经常使用的概念.技术和模式后.第一类NoSQL数据存储会在本章进行研究. 键/值存储通常有一个简单的数据模型:一个map/dictionary,同意客户按键来存放和请求 ...
- 【BZOJ4276】[ONTAK2015]Bajtman i Okrągły Robin 线段树优化建图+费用流
[BZOJ4276][ONTAK2015]Bajtman i Okrągły Robin Description 有n个强盗,其中第i个强盗会在[a[i],a[i]+1],[a[i]+1,a[i]+2 ...
- struct对齐
1 基本数据类型的自然对齐 就是说,基本数据类型的变量不能随便放在内存的任意位置,它们的起始地址必须被它们的大小整除. double是8个字节,float,int,enum是4字节,bool.char ...
- new 和 make 均是用于分配内存
the-way-to-go_ZH_CN/06.5.md at master · Unknwon/the-way-to-go_ZH_CN https://github.com/Unknwon/the-w ...