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%以上)更好? 我会的东西很多,喜欢的东西太多,但是很遗憾广而不专,会而不精.学了很多东西我都是为了娱乐,因为以前我们那里过于强调学习,很多爱好也都被扼杀在摇篮里.我觉得 ...
随机推荐
- Xshell 一款很养眼的配色方案推荐
Xshell 是个很好用的在 windows 下登陆 liunx 的终端原生支持中文,配合 Xftp 管理文件,同是免费软件可远比 Putty 好用多了面对枯燥的代码,我们需要一款很养眼的配色方案来保 ...
- web 表单方式上传文件方法(不用flash插件)
原理:使用表单的input type="file"标签,通过ajax提交表单请求,后台获取请求中的文件信息,进行文件保存操作 由于我测试用的做了一个上传文件和上传图片方法,所以我有 ...
- Codeforces 223C Partial Sums 数论+组合数学
题意非常easy,求不是那么好求的,k非常大 要操作非常多次,所以不可能直接来的.印象中解决操作比較多无非线段树 循环节 矩阵 组合数等等吧,这道题目 也就仅仅能多画画什么 的了 就以第一个案例为主吧 ...
- Windows下安装Oracle 11g全过程。
1. 解压Oracle11.1.0.6 for win32,然后点击setup 2.选择高级安装,下一步 3.选择企业版,下一步 4.修改Oracle基目录,也可以是默认,下一步 5.将状态复选框打上 ...
- JAVA程序开发按位运算的记录
忘记在哪里看到一个面试题:把int a,b的值互换,不能使用临时变量.刚开始完全懵逼,脑子里面全是浆糊,不知道如何下手.查看答案后猛地一惊,心想居然还有这种操作,真是叹为观止,真的感觉自己的基础是如此 ...
- WPF DataGrid 获取当前行某列值
[0]是指当前行第1列的单元格位置 注意:DataRowView要求必须引用System.Data命名空间 方法一: DataRowView mySelectedElement = (DataRowV ...
- SQL 经验总结
总结日常工作中使用SQL遇到的坑和技巧,一是加深印象,二是方便回顾.会不定期更新. 坑 1.多表联查时要使用表名,如果两个表的有列名相同的情况你没有加别名,那么sql编译器就不知道使用哪个列.这时进行 ...
- windowsphone8.1学习笔记之应用数据(二)
上一篇说了应用数据的应用设置,这篇说说应用文件,应用文件主要分为三种:本地应用文件.漫游应用文件和临时应用文件. 获取根目录方法如下,都是返回一个StorageFolder对象(稍后介绍这个). // ...
- 九度OJ 1165:字符串匹配 (模式匹配)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3219 解决:1149 题目描述: 读入数据string[ ],然后读入一个短字符串.要求查找string[ ]中和短字符串的所有匹配,输出 ...
- cmake的外部编译
1 什么是外部编译 就是让源码文件和cmake生成的工程文件分开,将cmake生成的工程文件放在一个单独的目录下面. 2 怎样进行外部编译 第一,单独建立一个目录,这个目录在source code目录 ...