Harry Putnam wrote:
> 
> "Charles K. Clarkson" <[EMAIL PROTECTED]> writes:
> 
> > Harry Putnam said:
> > :
> > : Here is the problem:
> > :
> > : Summary run home made tools against only the
> > : uniq paths that might contain perl *.pm files.
> >
> >     Harry, that doesn't' make a bit of sense.
> > Could you rephrase the question?
> 
> You can say that again... Must be heavy senior moments today.
> Not counting the misfired unfinished post that started the thread.
> Its still just plain wrong through and through.
> SPENCERS straightened me out.
> 
> Having shot myself in the foot from the gate,  I guess I might as
> well reveal the true depths of my ignorance and ask a remaining
> question.
> 
> There were also typos in my initial post.  I meant `*.pod' instead of
> `*.pm' but that doesn't really change the required coding.
> 
> I've butched the hell out of SPENCER's code in an attempte to get
> sorted output (sort on non-absolute *.pod) and am getting duplicates
> in the output.  Probably some really unorthodox technique (or lack
> there of).  I often find that I code like an illiterate hillbilly.
> Probably because that is what I am.... anyway:
> 
> I stuck the little uniquifier gimmick in there to prevent dups but
> can't really see why I would be getting dups.  Maybe @INC does need
> further processing
> 
> What is causing duplicates in the output.  Not everthing but only a
> few. (The debug file, ./debug will have a number of dups in it)
> 
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> #!/usr/local/bin/perl -w
> 
> use strict;
> my (%name, @sorted, @unsorted, $absolute );
> use File::Find ;
> 
> open(DBG,">./debug") or die "cannot open DBG: $!";
> 
> find(\&wanted,@INC);
> 
> sub wanted {
>    if (/\.pod$/){
>       print DBG "$File::Find::name\n";
> 
>       if ($name{$File::Find::name}++ == 0){

The initial value in $name{$File::Find::name} will be undef not zero so
comparing it to zero will not work.

        if ( $name{ $File::Find::name }++ ) {


>         push @unsorted, "$_ $File::Find::name";

You are using a space character as field separator however file and
directory names can have spaces in them.


>       }
>    }
> }
> @sorted = sort @unsorted;

You probably should use the keys of %name which are unique.

my @sorted = sort keys %name;


> for(@sorted){
>   $absolute = (split(/ /,$_))[1];
>   print "$absolute\n";
> }
> close(DBG);


John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to