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%以上)更好? 我会的东西很多,喜欢的东西太多,但是很遗憾广而不专,会而不精.学了很多东西我都是为了娱乐,因为以前我们那里过于强调学习,很多爱好也都被扼杀在摇篮里.我觉得 ...
随机推荐
- 动态PPT制作
今天开通的博客,希望以后能够和大家一起分享学习心得.今天也是第一次学习制作动态PPT. 如果想要做成flash那种效果,建议学习下<动画传奇>这本书. 做成flash效果,需要用到动画中的 ...
- python中strip()函数的理解
1.strip()函数 函数原型 声明:s为字符串.rm为要删除的字符序列 s.strip(rm) :删除s字符串中开头.结尾处.位于 rm删除序列的字符 s.lstrip(rm) :删除s字符串中开 ...
- u-boot-2014.04分析
本文档以smdk2410为例初步分析了u-boot-2014.04的配置.启动流程.代码重定向.内存分布. u-boot-2014.04这个版本的uboot从Linux内核中借鉴了很多东西,比如编译u ...
- hunnu--11548--找啊找啊找朋友
找啊找啊找朋友 Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit users: 14, ...
- python 基础 2.6 for 循环 和if循环 中break
python中最基本的语法格式大概就是缩进了.python中常用的循环:for循环,if循环.一个小游戏说明for,if ,break的用法. 猜数字游戏: 1.系统生成一个20以内的随机数 2.玩家 ...
- PHP部分--图片上传服务器、图片路径存入数据库,并读取
html页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...
- 再看python多线程------threading模块
现在把关于多线程的能想到的需要注意的点记录一下: 关于threading模块: 1.关于 传参问题 如果调用的子线程函数需要传参,要在参数后面加一个“,”否则会抛参数异常的错误. 如下: for i ...
- cocos2d-js添加百度MSSP插屏(通过jsb反射机制)
1.导入jar包.... 2.修改AndroidManifest.xml文件 添加: <meta-data android:name="BaiduMobAd_APP_ID" ...
- 【题解】Jury Compromise(链表+DP)
[题解]Jury Compromise(链表+DP) 传送门 题目大意 给你\(n\le 200\)个元素,一个元素有两个特征值,\(c_i\)和\(d_i\),\(c,d \in [0,20]\), ...
- 题解 CF576C 【Points on Plane】
题解 CF576C [Points on Plane] 一道很好的思维题. 传送门 我们看这个曼哈顿距离,显然如果有一边是按顺序排列的,显然是最优的,那另一边怎么办呢? 假如你正在\(ioi\)赛场上 ...