perl心得-perl初体验

    为了写个通用的文件处理小脚本,不得不用perl来写了。第一天,头晕眼花,该死的my,local定义,该死的@qw就是数组,$qw就是变量,该死的文件循环方法,更更更该死的正则表达式。让我这个初次接触perl的人心灰意冷,奶奶的,我就不信了。

    终于,放弃了复杂的编写,来个简单的吧先。先试下数据用

    use strict;
    use warnings;
    use File::Copy;

    my @arry1=(1,2,3,4,5,6,"weodf");
    print $arry1[0],"/n";

    原来也很简单嘛,跟其他脚本、编程语言没啥区别。

    我张狂了,恩,开始我期待实现的程序了........

 

 

    半个小时后.........蛋疼了,该死的文件夹操作

 

    1个小时后 .........fuck,忍不了了,找个例子去

 

    2个小时后 .........fuck,fuck,fuck。你这例子太缺德了吧。让我无从下手的该。竟然是遍历整个磁盘。附例子:

 

    #!/usr/bin/perl -W
#
# File: lsr_s.pl
# Author: 路小佳
# License: GPL-2
use strict;
use warnings;
sub lsr_s($) {
my $cwd = shift;
my @dirs = ($cwd.'/');
my ($dir, $file);
while ($dir = pop(@dirs)) {
local *DH;
if (!opendir(DH, $dir)) {
warn "Cannot opendir $dir: $! $^E";
next;
}
foreach (readdir(DH)

N style="COLOR: #0000cc">) {
if ($_ eq '.' || $_ eq '..') {
next;
}
$file = $dir.$_;
if (!-l $file && -d _) {
$file .= '/';
push(@dirs, $file);
}
process($file, $dir);
}
closedir(DH);
}
}
my ($size, $dircnt, $filecnt) = (0, 0, 0);
sub process($$) {
my $file = shift;
print $file, "/n";
if (substr($file, length($file)-1, 1)eq '/') {
$dircnt++;
}
else {
$filecnt++;
$size += -s $file;
}
}
lsr_s('.');
print "$filecnt files, $dircnt directory. $size bytes./n";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值