Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2292396
  • 博文数量: 168
  • 博客积分: 6641
  • 博客等级: 准将
  • 技术积分: 1996
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-02 11:49
文章存档

2020年(4)

2019年(6)

2017年(1)

2016年(3)

2015年(3)

2014年(8)

2013年(2)

2012年(12)

2011年(19)

2010年(10)

2009年(3)

2008年(17)

2007年(80)

分类: LINUX

2011-07-20 22:01:40

 
Perl脚本语言小记
 
2011-07-20  TsengYia#126.com http://tsengyia.blog.chinaunix.net/
 
#################################################################
 
一、基础部分
 
1. 脚本内容构成
#!/usr/bin/perl
# 注释语句
可执行代码;
……;
 
2. 变量、数组赋值及查看
$x=123;
$var="I am the king!";
@season=("Spring","Summer","Autumn","Winter");
 
print($var,$x,"\n");
print "所有数组元素:@season\n";
print "第二个数组元素是:$season[1]\n";
 
print "请输入一个字符串:";
$str=;                            #//表示从标准输入读取内容
print "您输入的字符串为:$str\n";
 
print "所有命令行参数为:\n";
print "@ARGV\n";                         #//内建数组ARGV用来收录命令行参数
$total=@ARGV;
print "一共$total个参数,\n";
print "其中第一个参数是:$ARGV[0]\n";
 
3. 调用Shell命令(反撇号)
$dir="/tmp/mydir";
if(-e $dir) {
    print "目录 $dir 已经存在。\n";
}
else {
    `/bin/mkdir $dir &> /dev/null`;
    if(-e $dir) {print "目录 $dir 不存在,但刚刚已新建此目录。\n";}
    print `/bin/ls -ld $dir`;
}
 
4. 字符串匹配、替换
$question="Could you help me, please?";
if($question=~/please/) {
    print "包含字符串please。\n";
}
else {
    print "不包含字符串please。\n";
}
 
$string="abcdefg";
$string=~s/def/123/;                     #//将def替换为123
print "$string\n";
 
 
二、脚本结构控制
 
1. if选择
if(表达式) {
    执行语句序列;
}
elseif(表达式) {
    执行语句序列;
}
else {
    执行语句序列;
}
 
2. while循环、until循环
while(表达式) {
    执行语句序列;
}
 
until(表达式) {
    执行语句序列;
}
 
$i=1;
while($i<=5) {
    print "$i\n";
    $i++;
}
 
3. do...while和do...until循环
do {
    执行语句序列;
}while(表达式)
 
do {
    执行语句序列;
}until(表达式)
 
4. for循环
for($i=1;$i<=5;$i++) {
    执行语句序列;
}
 
5. foreach循环
# 处理数组或列表对象
@season=("Spring","Summer","Autumn","Winter");
foreach $i (@season) {
    print "$i\n";
}
 
 
三、子程序的定义与调用
 
1. 先定义,后调用
sub help{
    print "用法...\n";
}
help;
 
2. 先调用,后定义
&help;
sub help{
    print "用法...\n";
}
 
3. 参数传递
sub mysub1{
    my($x,$y)=@_;                        #//传入变量参数
    $SUM=$x+$y;
    print "$SUM\n";
}
mysub(12,34);                            #//计算12+34的和
 
@season=("Spring","Summer","Autumn","Winter");
sub mysub2{
    my(@list)=@_;                        #//传入数组参数
    print "@list\n";
}
mysub(@season);
 
#################################################################
阅读(1157) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~