Chinaunix首页 | 论坛 | 博客
  • 博客访问: 343682
  • 博文数量: 61
  • 博客积分: 2451
  • 博客等级: 上尉
  • 技术积分: 650
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-06 21:24
文章分类

全部博文(61)

文章存档

2012年(1)

2011年(44)

2010年(16)

分类: LINUX

2011-06-12 12:29:10

1.文件团
2.substr 函数
3.windows 命令行安装perl模块

==》1 文件团
文件团的两种表示方法:
文件团相当于shell中的文件通配符
如echo "*.txt" shell 会先将*.txt展开后给echo显示。perl中也有类似的功能 那就是文件团。glob 或者<> 返回一个文件列表。
  1. code:
  2. #!/usr/bin/perl
  3. use strict;
  4. use warnings;
  5. my $dir="/root/shelllearn";
  6. my @argv1=glob "*.txt *.bz2";#这是将glob用作操作符,中间的空格是有意义的返回以txt结尾和bz2结尾的文件列表赋给数组@argv1
  7. print '@argv1:',"@argv1\n";
  8. chdir or die "Can't change directory:$!\n";#chdir 相当于shell的cd 改变目录,不加任何参数,chdir改变目录的当前用户的家目录。
  9. my @argv2=glob "*.cfg";
  10. print '@argv2:',"@argv2\n";
  11. chdir "/root/perllearn/" or die "Can't change directory:$!\n";
  12. my @argv3=<*.txt>;#这是比较老的表示方法
  13. print '@argv3:',"@argv3\n";
  14. my @argv4=<$dir/*.pl>;#在里面可以进行变量替换(不推荐这种写法)
  15. print '@argv4:',"@argv4\n";
  16. my $file;
  17. ($file)=glob("$dir/*.pl");#同样可以进行变量替换,推荐这种写法,这里将glob当作函数使用。
  18. print '$file:',"$file\n";
  19. 运行结果:
  20. @argv1:money.txt products.txt perllearn.bz2
  21. @argv2:anaconda-ks.cfg
  22. @argv3:money.txt products.txt
  23. @argv4:/root/shelllearn/test.pl /root/shelllearn/test1.pl
  24. $file:/root/shelllearn/test.pl
可以通过文件团 该变匹配文件的权限
chmod 0644 <*.txt>; 
或者
chmod 0644 glob("*.txt");

==》2.substr 函数
与awk中的substr用法相似
  1. usage:
  2. substr exp offset [length] [replacement]
  3. substr 函数中0表示第一个字符 除非改变$[的值(但不要这样做)
  4. code:
  5. #!/usr/bin/perl
  6. use strict;
  7. use warnings;
  8.        0123456789...
  9. my $s="The black cat climbed the green tree";
  10. my $color=substr $s,4,5;
  11. #从4开始即第五个字符开始及后面五个字符即black
  12. my $middle=substr $s,4,-11;
  13. #从4开始截取到最后然后从最后往前截取11个字符
  14. my $end=substr $s,14;
  15. #从14开始一直截取到最后
  16. my $tail=substr $s,-4;
  17. #从-4个字符开始即倒数第四个字符截取到最后
  18. my $z=substr $s,-4,2;
  19. #倒数第四个开始截取两个字符 即tr
  20. print '$color:',$color,"\n";
  21. print '$middle:',$middle,"\n";
  22. print '$end:',$end,"\n";
  23. print '$tail:',$tail,"\n";
  24. print '$z:',$z,"\n";
  25. print "-" x 30,"\n";
  26. my $s2 = "The black cat climbed the green tree";
  27. my $z2 = substr $s, 14, 7, "jumped from";
  28. #将第14开始后7个字符替换成replacement部分 这里是jumped from  返回被替换的部分。
  29. print "\$s2 is: $s2\n";
  30. print "\$z2 is: $z2\n";
  31. 运行结果
  32. $color:black
  33. $middle:black cat climbed the
  34. $end:climbed the green tree
  35. $tail:tree
  36. $z:tr
  37. ------------------------------
  38. $s2 is: The black cat climbed the green tree
  39. $z2 is: climbed
==》3.windows 命令行安装perl模块
==》4.
阅读(2202) | 评论(0) | 转发(0) |
0

上一篇:shell 简单记录 Ⅲ

下一篇:没有了

给主人留下些什么吧!~~