FAQ

Harry Putnam wrote:
#!/usr/local/bin/perl


use strict;
use warnings;
use File::Find;
use Cwd;

my %h1;
my %h2;
my $targ = shift;
my @ckarr;

my $h1ff = './h1';
my $h2ff = './h2';
my $ckff = './ckarr';
my $nf = './nf';

for($h1ff,$h2ff,$ckff,$nf){
if (-f $_){
print "deleting $_\n";
unlink $_ or die "Can't unlink $_ : $!";
}
}

open my $nfh,'>',$nf or die "Cannot open $nf: $!";

find({ wanted =>
sub {
my $dir = getcwd;
if(-f $dir . '/' . $_) {
print $nfh "V $File::Find::name K $_\n";
$h1{$File::Find::name} = $_;
$h2{$_} = $File::Find::name;
push @ckarr, $File::Find::name;
}
},no_chdir =>0,
},
$targ
);
open my $h1fh,'>',$h1ff or die "Can't open $h1ff: $!";
open my $h2fh,'>',$h2ff or die \"Cannot open $h2ff: $!";
open my $ckfh,'>',$ckff or die \"Cannot open $ckff: $!";

foreach my $key (keys %h1){
print $h1fh "V $h1{$key} K $key\n";
}

foreach my $key (keys %h2){
print $h2fh "V $h2{$key} K $key\n";
}

for(@ckarr){
print $ckfh "$_\n";
}
close $h1fh or die "could not close $h1: $!\n";
close $h2fh or die "could not close $h2: $!\n";
close $ckfh or die "could not close $ckarr: $!\n";
print " ------- -------\n";
for($h1ff,$h2ff,$ckff,$nf){
if (-f $_){
my $file = $_;
my $sz = (stat($_))[7];
open my $fh,'<', $_ or die "Can't open $_: $!";
my $lines;
while (<$fh>) {
$lines = $.;
}
print " $file:
lines: $lines
size: $sz\n";
close $fh;
}
print " ------- -------\n";
}
Output is buffered. The files have to be closed for the last lines to
be printed to the file.


--
Just my 0.00000002 million dollars worth,
Shawn

Programming is as much about organization and communication
as it is about coding.

I like Perl; it's the only language where you can bless your
thingy.

Eliminate software piracy: use only FLOSS.

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 2 of 4 | next ›
Discussion Overview
groupbeginners @
categoriesperl
postedApr 25, '10 at 7:25p
activeApr 25, '10 at 11:46p
posts4
users3
websiteperl.org

People

Translate

site design / logo © 2022 Grokbase