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/;  #给数组赋值。

@[email protected]; #将一个数组拷贝到另一个数组里。

13.  pop:末尾取出元素;push:将一个或一列元素加在末尾。

如:pop(@array);  push(@array,@others);  #将@others添加到@array末尾。

14.  shift 和 unshift 对数组首操作。 shift:取出首元素。unshift:将一个或一列加在首部。

15.  当把email地址插入双引号时,$email="fred\@bedrock.edu";  $email=‘[email protected]‘;

16.  perl最常用的默认变量:$_  。 如:  foreach(1..10){

print "I can $_!\n";

}

17.  foreach控制结构

如:  foreach $rock(qw/break Slee lawer/){

print "One rock is $rock . \n"; #打印数组

}

18.  reverse 逆转操作,将一串列表按相反的顺序返回。

如: @fred=6..10;

@bareny=reverse(@fred); #@bareny="10,9,8,7,6".

19.  sort:将输入的一串列表根据内部的字符顺序进行排序。

如:ASCII字符串     @rocks =qw/breaks sholer rubble gertdned/;

@sorted=sort(@rocks);

20.  强制转换成标量,context,可使用 scalar。

如:print "I have",scalar @rocks,"rocks!\n";输出为数字。

21.  <STDIN>在列表context中:  chomp(@line=<STDIN>);  #读入所有行,不包括换行符。

文件输入完成时:linux/MACOS x,用 ctrl+d 结束;DOS/Windows, 用 ctrl+z 结束。

22.  调用子程序时,返回值为最后一个被计算的表达式。 @_ 是子程序的一个私有变量。      可以使用“my”创建子程序的私有变量,也可以在if ,untile ,foreach 块中使用。

如: my($fred,$bread); #定义两个私有变量。

如果新的私有变量没有被赋值的话,标量变量 会自动赋值为 undef ;数组变量 赋值为 空列表。

23.  使用strict Pragma 严格检查某代码;use strict 迫使采用更严格的检测。

24. 调用子程序 & 可省。

如: sub divsion{

$_[0]/$_[1];

}

my $quotient=divsion 355, 113;  #调用,同 my $quotient=&divsion(355,113);

25.  严重错误和 die 函数

如: if(!open LOG,">>logfile"){

die "Cannot create logfile:$_!";  #$_ 输出系统错误信息

}

一般,0表示正常;非0表示失败。常见的:1-->命令行中语法错误; 2--> 运行错误  ; 3--> 没有找到匹配文件。

26.  @ARGV  含义是包含了程序从命令行得到的所有参数。输入。

27.   复制文件: system(‘cp -r ./filea.txt ./map‘); #将文件.txt复制到map文件夹下

29.   读文件:  open(FILE,"file.txt");  # FILE 为文件句柄。

my $record;

while($record=<FILE>){

print ("file record is :$record\n");

}

close(FILE);

30.  写文件:open(FILE1,">write.txt");

syswrite(FILE1,"I konw it ! \n");  #将 "I konw it!"写入文件。

close(FILE1);

注:> 覆盖写入;>> 追加写入。

31.  创建文件夹:mkdir(hello,0777)||die "not create!\n";

创建文件: unless(-e "name.txt"){

open(FILE2,">name.txt") or &out_err("not create!\n");

}

删除文件:unlink("name.txt");

创建目录(可多级):mkpath(directoy,1,0711);       删除目录:rmtree(directoy,1,1);

删除文件夹:rmdir("hello")||die "not delete";

32.  数据库:windows下安装DBD:->cmd 输入 ppm install DBD::mysql

33.数据库连接: use DBI;

my $dbh=DBI->connect("DBI:mysql:database=数据库;host=localhost;port:3308","用户名","密码",{‘RaiseError‘=>1});

my $sth=$dbh->prepare("select * from asset");

$sth->execute();

while(my $ref=$sth->fetchrow_hashref()){

print "$ref->{‘id‘}\t".

"$ref->{‘name‘}\n";

}

$sth->finish();

$dbh->disconnect();

34.哈希:my %last_name=(

"fred"=>"finished",

"dion"=>"undef",

"barney"=>"rubble"

);

35.  keys 和values 函数

my %hash=("a"=>1,"b"=>2,"c"=>3);

my @k=keys %hash;   #得到key值

my @v=values %hash;  #得到values值

注: @k和@v中的"a","b","c" 的顺序可能不同,但是@k和@v还是一一对应的。如"b"=>2,可能在第三位。

36.  each函数:迭代hash中的每个元素。

如:while((@key,@values)=each %hash){

print "$key=>$values\n";

}

37.  exists 函数:  if(exists $books{$dino}){ };

delete函数: delete $books{$dino}; #删除

38.  大小写转换: $_="I saw Barney with Fred.";

大写:S/(fred)|barney/\U$1/gi;  #BARNEY

小写:S/(fred)|barney/\L$1/gi;  #barney

39.split操作:分割      @fields =split /separtor/,$string;

如: @fileds=split/:/,"abc:def:d:h";

join粘合函数: my $result = join $glue,@pieces;

如:my $x=join ":",4,5,6,7,8;    # 4:5:6:7:8

40. 控制条件 unless 除非条件为真,否则执行块中代码。

unless($fred=~/^[A-Z-]\W*$/i){

print "The $fred";

}

until:与while相反,当条件为假时,重复执行。

41. $n=++$m; #先将变量加1,再取值;

$n=$m++;#先取值,在加1.

42.  last会立刻结束循环。 for,foreach,while,until,裸块。

next 跳到当前循环的最后面,next之后进入下一轮循环。

redo 调到当前循环的顶端,不进行条件表达式判断以及接着本次循环(可放到循环体后面)。

标签块: LINE:while(<>){

foreach(split){

last LINE if/__END__/;

}

}

43.三元操作符:Express?if_true_exp : if_false_exp

时间: 2024-09-30 06:26:17

perl脚本基础总结的相关文章

从游戏脚本语言说起,剖析Mono所搭建的脚本基础

0x00 前言 在日常的工作中,我偶尔能遇到这样的问题:“为何游戏脚本在现在的游戏开发中变得不可或缺?”.那么这周我就写篇文章从游戏脚本聊起,分析一下游戏脚本因何出现,而mono又能提供怎样的脚本基础.最后会通过模拟Unity3D游戏引擎中的脚本功能,将Mono运行时嵌入到一个非托管(C/C++)程序中,实现脚本语言和“引擎”之间的分离. 回到目录 0x01 Why?从为何需要游戏脚本开始 首先聊聊为何现在的游戏开发需要使用游戏脚本这个话题. 为何需要有脚本系统呢?脚本系统又是因何而出现的呢?其

写的一个perl脚本,用于发送远程MySQL命令

想写一些简化管理操作的脚本,下面是基础脚本之一. 对于一个从来没使用过perl脚本的我来说还是有些难度的,直接上代码. 此脚本用于发送远程MySQL命令并且接收结果,功能比较简单,后面会渐渐完善. #!/usr/bin/perl use Getopt::Long; use DBI; Getopt::Long::GetOptions( 'host|h=s' => \$host, 'user|u=s' => \$user, 'password|pw=s' => \$password, 'po

perl重点基础知识整理

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

续写vim,shell脚本基础编辑,read命令,if与case判断语句,文件查找方式,压缩与解压,

一. Vim续写 ?1.命令扩展模式的位置定界 ??起始位置 cmd 终止位置???Cmd:????y复制????d删除????Gu变大写????gu变小写??例如:0y$命令意味着:????0 先到行头????Y 从这里开始拷贝????$ 拷贝到本行行尾最后一个字符????Ye 从当前位置拷贝到本单词的最后一个字符 ?2.扩展命令模式:地址定界 ? ?# 具体第#行,? ?#1,#2 从开头数第#1行到第#2行? ?#1,+#2 从开头数的第#1行到从第#1行开始数的第#2行? ? ?例:2,

Linux-shell脚本基础

本章内容 编程基础 脚本基本格式 变量 运算 条件测试 配置用户环境 编程基础 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令 编程语言: 低级:汇编 高级: 编译:高级语言-->编译器-->目标代码 java,C# 解释:高级语言-->解释器-->机器代码 shell, perl, python 编程基本概念 编程逻辑处理方式: 顺序执行

shell脚本基础和grep使用

shell脚本基础和grep使用 一.shell脚本基础 (1).命令hash hash的作用:缓存此前命令的查找结果:key-value数据格式(键值),key:搜索键:value:值 hash的使用: 直接使用hash,列出缓存的所有命令 -d选项,hash -d COMMAND:表示清空指定命令的缓存,如hash -d ls -r选项,表示清空所有命令的缓存,hash -r (2).编程语言 强类型变量编程语言 弱类型变量编程语言:? ? (1)bash把所有变量统统视作字符型;? ? 在

什么是Shell?Shell脚本基础知识详细介绍

这篇文章主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell.有多少种Shell.一个Shell脚本代码实例,需要的朋友可以参考下 Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 它虽然不是Linux系统核心

Linuxshell脚本基础

编程基础?Linus:Talk is cheap, show me the code?程序?程序:算法+数据结构?数据:是程序的核心?数据结构:数据在计算机中的类型和组织方式?算法:处理数据的方式 程序编程风格:过程式:以指令为中心,数据服务于指令对象式:以数据为中心,指令服务于数据?shell程序:提供了编程能力,解释执行 编程基本概念?编程逻辑处理方式:顺序执行循环执行选择执行?shell编程:过程式.解释执行编程语言的基本结构:各种系统命令的组合数据存储:变量.数组表达式:a + b语句:

6.shell脚本基础和grep文本处理工具企业应用

6.1shell脚本基础-bash变量和逻辑运行 bash特性及bash脚本编程初步 终端:附着在终端接口程序: GUI:KDE,GNome,Xfce CLI:/etc/shells bash的特性 命令行展开:~,{} 命令别名:alias,unalias 命令历史: history 文件名通配:glob 快捷键:Ctrl+a, e, u, k, l 命令补全: $PATH 路径补全: bash特性之:命令hash 缓存此前命令的查找结构:key-vlaue key:搜索值 value:值 h