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%以上)更好? 我会的东西很多,喜欢的东西太多,但是很遗憾广而不专,会而不精.学了很多东西我都是为了娱乐,因为以前我们那里过于强调学习,很多爱好也都被扼杀在摇篮里.我觉得 ...
随机推荐
- centos7 安装rocketmq(quick start)
Quick Start This quick start guide is a detailed instruction of setting up RocketMQ messaging system ...
- MySQL 5.7.18的安装及主从复制(主从同步)
MySQL 5.7.18的安装与主从复制 IP 计算机名 角色 192.168.1.222 001 master 192.168.1.233 002 slave CentOS 6.9安装mysql5. ...
- 【Python + Selenium】初次用IE浏览器之报错:selenium.common.exceptions.WebDriverException: Message: Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones.
初次用IE浏览器运行自动化程序时,报错:selenium.common.exceptions.WebDriverException: Message: Unexpected error launchi ...
- mfc 小程序---在系统菜单中添加菜单项
1建立一个对话框工程:在dlg类里定义一个菜单指针m_pMenu,在对话框OnInitDialog函数里添加代码: m_pMenu=GetSystemMenu(FALSE);//获取系统菜单的指针 m ...
- bash学习记录
bash: 管理员: 提示符# 普通用户:提示符$ 环境变量 A=3(变量是指内存空间,A指的是内存空间的名称-变量标示符) PS1 \u@\h:\w\$ \u用户名 \h主机名 \w工作目录的 ...
- Linux 开启端口,操作防火墙
命令行方式: 添加10002端口方法 1.vi etc/sysconfig/iptables 2. 开放端口命令:-A INPUT -p tcp -m state --state NEW -m ...
- C#使用tesseract3.02识别验证码模拟登录(转)
转自http://www.cnblogs.com/JinJi-Jary/p/5625414.html
- Swift 学习笔记 (类和结构体)
类和结构体是一种多功能且灵活的构造体.通过使用与现存常量 变量 函数完全相同的语法来在类和结构体中定义属性和方法以添加功能. Swift中不需要你为自定义的类和结构体创建独立的结构和实现文件.在Swi ...
- Python爬虫-- BeautifulSoup库
BeautifulSoup库 beautifulsoup就是一个非常强大的工具,爬虫利器.一个灵活又方便的网页解析库,处理高效,支持多种解析器.利用它就不用编写正则表达式也能方便的实现网页信息的抓取 ...
- Wix Burn运行64位dism.exe的问题
主要的问题是Burn是一个32位程序,在64位机器上它启动的进程都会被重定向到wow64目录下,也就是说它运行的dism.exe最终会是32位的.解决的方法就是用wix提供的QtExec64CmdLi ...