Beefy Boxes and Bandwidth Generously Provided by pair Networks Cowboy Neal with Hat
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re: tidyhome

by snax (Hermit)
on Dec 17, 2000 at 10:36 UTC ( [id://47118]=note: print w/replies, xml ) Need Help??

This is an archived low-energy page for bots and other anonmyous visitors. Please sign up if you are a human and want to interact.


in reply to tidyhome

I would make two suggestions regarding this chunk:
my @list = glob("$home/*.$type"); foreach my $file (@list) { my $result = `mv $file $home/$basedir/$key`; } $type = uc($type); @list = glob("$home/*.$type"); foreach $file (@list) { $result = `mv $file $home/$basedir/$key`; }
First, there's a lot of repetition there that can be removed by setting your @list variable to the "concatenation" of the lists returned by the glob. Second, you grab $result but you never check whether the move was successful! I'd think about rewriting the chunk above as:
foreach my $file (glob("$home/*.$type"), glob("$home/*.\U$type")) { system('mv', $file, "$home/$basedir/$key") == 0 or warn "Could not move $file: $!"; }
(the \U modifier does the uc translation within double quoted strings).

Also, you could do to a test for existence of directories (-d $dirname, I believe) and create those on the fly rather than forcing their existence beforehand, something like

system('mkdir', '-p', "$home/$basedir/$key") unless -d "$home/$basedir/$key";
Here I presume a *nix environment, which seems likely given your earlier use of 'mv'. Natch, you should test the return value of that system call, too....

Replies are listed 'Best First'.
Re: Re: tidyhome
by salvadors (Pilgrim) on Dec 30, 2000 at 22:26 UTC
    Or, you could use the builtin rename and mkdir functions ...

    Tony

Re: Re: tidyhome
by Anonymous Monk on Jan 20, 2001 at 19:06 UTC
    Indeedy - I'll be updating the script soon. It's more 'perlie' now, creates the directories if the don't exist, and also checks for permission/symlink problems. Billy.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://47118]
help
Sections?
Information?
Find Nodes?
Leftovers?
    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.