- Does your version of tar support the "-z / --gzip" (compress) option? If so, you could create the ".tar.gz" file in a single step.
- Does your version of tar support the "-T / --files-from" option? If so, it would be better to store the items in your @srcfiles array to a simple list file (one file name per line), and pass the name of the list file to the tar command with "-T".
- Do you really need to use the "-v / --verbose" option when you run tar? That just causes tar to print the names of all the included files to its stdout, but you already have the list of file names, so you don't need this.
Putting all those together, your run time might be shorter with the following:
open( L, ">$tar_file.input_list" );
print L "$_\n" for ( @srcfiles );
close L;
system( "tar czf $tar_file.gz -T $tar_file.input_list" );
As suggested above, if your version does not support the "z" option for creating a gzipped tar file, you can simply pipe tar's output to a separate gzip command:
system( "tar cf - -T $tar_file.input_list | gzip > $tar_file.gz" );
(I don't think I've ever seen a version of tar that does not support the "-T listfile" option.)
Apart from that, if you are dealing with lots of data, it's going to take time. Using tar and gzip from the shell command line should give you similar results, and perl has nothing to do with it -- unless, as mentioned in another reply, your list of @srcfiles contains a lot of duplicated entries.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.