免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: juming1983
打印 上一主题 下一主题

perl解压文件问题 [复制链接]

论坛徽章:
6
丑牛
日期:2014-03-21 15:42:04子鼠
日期:2014-04-12 11:50:17处女座
日期:2014-09-01 09:25:1115-16赛季CBA联赛之吉林
日期:2015-12-22 14:01:5215-16赛季CBA联赛之广东
日期:2016-03-08 18:49:422016科比退役纪念章
日期:2016-07-06 12:19:55
11 [报告]
发表于 2013-08-29 19:43 |只看该作者
  1. my @files = <$dir\\* $dir/.*>;
复制代码
上面这货在文件名有空格的情况下貌似不给力。改成↓这样?{:3_204:}
  1. sub get_zip_files_from {
  2.     use IO::Dir;
  3.     use File::Spec;

  4.     my $dir = shift;
  5.     my @zip_files = ();

  6.     my $d = IO::Dir->new($dir);
  7.     if (defined $d) {
  8.         while (defined(my $file = $d->read)) {
  9.             next if $file eq '.';
  10.             next if $file eq '..';
  11.             next if $file !~ m{ \. zip $}mix;
  12.             $file = File::Spec->catfile($dir,$file);
  13.             push @zip_files, $file;
  14.         }
  15.     }

  16.     return @zip_files;
  17. }
  18. my @files = get_zip_files_from($dir);
复制代码
回复 9# cups_book


   

论坛徽章:
0
12 [报告]
发表于 2013-08-30 13:04 |只看该作者
  1. next if $file !~ m{ \. zip $}mix;
复制代码
这个看不懂,具体用自然语言,解释下?

论坛徽章:
6
丑牛
日期:2014-03-21 15:42:04子鼠
日期:2014-04-12 11:50:17处女座
日期:2014-09-01 09:25:1115-16赛季CBA联赛之吉林
日期:2015-12-22 14:01:5215-16赛季CBA联赛之广东
日期:2016-03-08 18:49:422016科比退役纪念章
日期:2016-07-06 12:19:55
13 [报告]
发表于 2013-08-30 13:36 |只看该作者
本帖最后由 stanley_tam 于 2013-08-30 13:39 编辑
  1. next if $file !~ m{ \. zip $}mix;
复制代码
就是如果$file不是以.zip结尾的话,就跳过这个$file,直接开始循环的下一个。

正则匹配一般是 $var =~ /pattern/, 但是这样的话,如果出错,报错不好看,所以偶用的是$var =~ m{pattern}.

回复 12# cups_book


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP