Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Re^6: maddening system call gzip/gunzip problems

by neilwatson (Priest)
on Dec 07, 2006 at 20:13 UTC ( #588454=note: print w/replies, xml ) Need Help??

in reply to Re^5: maddening system call gzip/gunzip problems
in thread maddening system call gzip/gunzip problems

Great answer. Thank you (and thank you to all who added their two cents). I solved this by using two loops. One to create the file list and the second to go through the list and issue the system commands for each item.
sub gzip { my $cmd = shift; my $dir = shift; my ($file, $fullfile); my @files = (); print "$cmd files in $dir...\n"; # Make sure command is secure and predictable. if ( $cmd eq 'zip' ){ $cmd = 'gzip'; } elsif ( $cmd eq 'unzip' ){ $cmd = 'gunzip'; } else { warn "zip or unzip command not given $!"; } # Generate list of files opendir DIR, $dir or warn "Cannot open $dir $!"; while ( defined ( $file = readdir(DIR) ) ){ $fullfile = "$dir/$file"; next if ( !-f $fullfile || $file =~ m/\.txt$/ || $file !~ m/^[\w-]+(\.[\w-]+)*$/ ); push @files, $fullfile; } closedir DIR; # Using file list from above, issue zip or unzip command. You can +not do # both in the same loop as the readdir may pickup the newly create +d files # and try to process them. Thus you may endup to zipping a zipped + file or # unzipping an upzipped file. while (<@files>) { system ( "$cmd $_") == 0 or warn "Cannot $cmd $fullfile : $!"; } }

Neil Watson

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://588454]
[1nickt]: They assume that if I want a 17" monitor I could not possibly want 4k screen
[1nickt]: They assume I do not need a DVD drive
[1nickt]: Heh, or they assume that if I want all that I am a "gamer" and I must want red backlighting for the keyboards and that I will pay $3500 ...
[stevieb]: what is your budget? HP 17" 4k display, DVD writer, full numeric keypad
[stevieb]: $1500 USD

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2017-03-26 18:08 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (315 votes). Check out past polls.