SPUG: RE: Simple program - gone wrong
Brian Maddux
brianmaddux at yahoo.com
Mon Jul 8 13:18:33 CDT 2002
OOPS! I sent this before I realized it was printing
directories, which were to be excluded.
My code, and Sue's, forgot the "../" in front of $name
in the 'if (-d $name) {' line. Replace with 'if (-d
"../$name") {'. readdir returns only then names of the
files, not the path.
Brian
--- Brian Maddux <brianmaddux at yahoo.com> wrote:
> Try this:
>
> #!/usr/bin/perl
> open(RDIR,"./admin/data/rdir.txt");
> opendir(DIR, "../");
> @files = readdir(DIR);
> $num = 1;
> foreach $name (@files) {
> if(-d $name){
> }elsif($name eq "." || $name eq ".."){
> }else{
> print RDIR "$num | $name\n";
> $num++;
> }
> }
> close(RDIR);
> close(DIR);
> exit;
>
> ---------
>
> You don't need the for loop, just a counter; print
> was
> in the wrong form; and you forgot to open RDIR for
> write.
>
> Coding and colds do not mix well ;-) especially if
> you
> know multiple languages and start mixing them up!
>
> Hope this helps and you feel better....
>
> Brian
>
>
> --- Sweethomes <sweetsue at sweethomes.com> wrote:
> > Not sure if this went through - resending:
> >
> > Scratching my head over this one. All I want is
> > to read the upper
> > directory, list out the files names and then print
> > the results with
> > numbering to a file. Here is what I have:
> >
> > #!/usr/bin/perl
> > open(RDIR,"./admin/data/rdir.txt");
> > opendir(DIR, "../");
> > @files = readdir(DIR);
> > for($num = 0; $num <= 100; $num += 1)
> > foreach $name (@files) {
> > if(-d $name){}elsif($name eq "." || $name eq
> > ".."){}else{
> > print(RDIR, "$num | $name\n");}}
> > close(RDIR);
> > close(DIR);
> > exit;
> >
> > I've got the worst headcold in my personal
> > history and I'm thinking that
> > my brain just is not functioning. If anyone can
> > clear this up for me, I'd
> > appreciate it!
> > Happy 4th of July to all!
> >
> > www.web-dev-design.com
> > ------------------------------------
> > Susanne Bullo, Developer Web Dev Design
> > 16646 SE 10th Street Bellevue,
> WA
> > 98008
> > Telephone: 425.562.6040 Facsimile:
> > 425.671.0571
> >
>
>
> =====
> Brian Maddux Whidbey Island, WA
> brianmaddux at yahoo.com
> **
>
> __________________________________________________
> Do You Yahoo!?
> Sign up for SBC Yahoo! Dial - First Month Free
> http://sbc.yahoo.com
>
> - - - - - - - - - - - - - - - - - - - - - - - - - -
> - - - - - - - - - - -
> POST TO: spug-list at pm.org PROBLEMS:
> owner-spug-list at pm.org
> Subscriptions; Email to majordomo at pm.org:
> ACTION LIST EMAIL
> Replace ACTION by subscribe or unsubscribe, EMAIL
> by your Email-address
> For daily traffic, use spug-list for LIST ; for
> weekly, spug-list-digest
> Seattle Perl Users Group (SPUG) Home Page:
> http://seattleperl.org
>
=====
Brian Maddux Whidbey Island, WA
brianmaddux at yahoo.com
**
__________________________________________________
Do You Yahoo!?
Sign up for SBC Yahoo! Dial - First Month Free
http://sbc.yahoo.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
POST TO: spug-list at pm.org PROBLEMS: owner-spug-list at pm.org
Subscriptions; Email to majordomo at pm.org: ACTION LIST EMAIL
Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address
For daily traffic, use spug-list for LIST ; for weekly, spug-list-digest
Seattle Perl Users Group (SPUG) Home Page: http://seattleperl.org
More information about the spug-list
mailing list