1. #!/usr/bin/perl -w  

  2. #########################################################################  

  3. # File Name: test2.pl  

  4. # Author: xuehuikuaile  

  5. # Created Time: 2018年02月20日   

  6. #########################################################################  

  7.   

  8. print "输入输出\n";  

  9.   

  10. #从标准输入设备输入 键盘输入  

  11. #while (defined($line=<STDIN>)){  

  12. #    print "I saw $line \n";  

  13. #}  

  14. #while (defined($_=<STDIN>)){  

  15. #    print "I saw $_ \n";  

  16. #}  

  17.   

  18. #从<>输入 可能是键盘或者其他,   

  19. #如果是执行 ./test2.pl file1.log 就会以log文件输入  

  20. #如果是执行 ./test2.pl <file1.log >file2.log, 就是告诉shell  

  21. #从file1.log读入,将结果写入到file2.log文件中  

  22. #while (defined($line=<>)){  

  23. #    print "I saw $line \n";  

  24. #}  

  25.   

  26.   

  27. #外部输入参数将保存到@ARGV这个数组中,可以用shift或foreach迭代  

  28. print "调用参数 @ARGV\n";  

  29.   

  30. #输出到设备  

  31. @array = qw(qwrr asdf 123.12);  

  32. print "@array\n";  

  33. printf("array[2]: %d\n", $array[2]);  

  34. #利用X复制运算符,直接将数组作参数给入  

  35. printf("array:"."%10s"x@array."\n", @array);  

  36.   

  37. #文件句柄  

  38. #使用open打开文件file1.log,文件句柄为FD,使用close关闭文件句柄  

  39. #得到句柄后,根据<FD>即可读取文件内容  

  40. #错误退出使用 die, $!能给出错误原因  

  41. #给出警告使用 warn, 和die一样,只是不会退出程序  

  42. $openFlag = open(FD1, "<file1.log");  

  43. if($openFlag){  

  44.     print "打开文件成功\n";      

  45.     @lines =<FD1>;  

  46.     print "打开文件内容:\n";  

  47.     print "@lines\n";  

  48.       

  49.     open(FDW, ">>file3.log");  

  50.     printf(FDW "写入内容:@lines");  

  51.       

  52.     close FDW;  

  53.     close FD1;  

  54. }else{  

  55.     die "打开文件失败: $!\n";  

  56. }  

  57.   

  58. print "no die\n";  

  59.   

  60. #使用readline 读取文件每一行的内容  

  61. open(FD2, "<file1.log"or die "can't open this file: $!";  

  62. $lineNum = 1;  

  63. foreach $lineContext (readline FD2){  

  64.     print "line $lineNum: $lineContext";  

  65.     $lineNum++;      

  66. }  

  67. close FD2;  

 copy

  1. #!/usr/bin/perl -w  

  2. #########################################################################  

  3. # File Name: test5.pl  

  4. # Author: kevin xiang  

  5. # Created Time: 2014年07月08日 星期二 16时06分43秒  

  6. #########################################################################  

  7.   

  8. print "文件夹操作\n";  

  9.   

  10. #chdir 切换文件夹  

  11. #chdir "/root";  

  12.   

  13. #glob 文件名模式匹配  

  14. @root_files = glob "*.deb";  

  15. print "root dir files: @root_files\n";  

  16.   

  17. #<*> 支持多个参数, 输出/opt 和 /root下的内容  

  18. @opt_files = </opt/* /root/*>;  

  19. print "opt dir files: @opt_files\n";  

  20.   

  21. #目录句柄 opendir readdir closedir  

  22. $dir = "/root";  

  23. opendir(FD, $dir) or die "can't open $dir: $!";  

  24. $fileNum = 1;  

  25. foreach $file (readdir FD){  

  26.     print "file $fileNum: $file\n";  

  27.     $fileNum++;  

  28. }  

  29. closedir FD;  

  30.   

  31. #删除文件 unlink, 返回值为成功删除文件的个数  

  32. unlink "1.rm" or warn "remove this file fail: $!";  

  33. unlink glob "*.rm";  

  34.   

  35. #删除目录  

  36. rmdir "dirrm";  

  37.   

  38. #创建目录  

  39. mkdir "dirrm2",0755;  

  40. #mkdir "dirrm2",oct(0755);  

  41.   

  42. #重命名文件  

  43. rename "name.log","name2.log" or warn "rename file fail: $!";