SPUG: A more complicated question

Ken McGlothlen mcglk at artlogix.com
Thu Jan 10 18:02:40 CST 2002


"garrett esperum" <shamonsflame at hotmail.com> writes:

| The meta-data file contains information about multiple data files. There are
| hundreds of rows with six columns each in the meta-data file. Each file has
| it's own row of meta information. A rows column is as follows:
| 
| Column 1 = file name
| Column 2 = file type
| Column 3 = file location
| Column 4 = file owner
| Column 5 = file permissions
| Column 6 = currently unused optional column
| 
| These columns are seperated by a single tab. [...]
| I want to execute the creation.pl file to read the meta-data file and create
| a "mirrored file environment" from the meta-data information. I need help
| with the following tasks:
| 
| 1) How do I process each column of every row? How do I grab one row, split it
| up at every tab, and copy the correct file into it's correct directory with
| its correct permissions?

use File::Copy;

open( F, "metadata.yabble" );
while( <F> ) {
        chomp;
        my( $fn, $ftype, $floc, $fown, $fperm, $optional ) = split( /\t/ );
        copy( $fn, $floc );
        chmod( $fperm, "$floc/$fn" );
}
close( F );

| 2) How do I create variables for each piece of the split row?

Already answered above.

| Like how do I create a variable for the directory path column and then go and
| create that directory path from that variable if it doesn't already exist?

use File::Copy;
use File::Path;

open( F, "metadata.yabble" );
while( <F> ) {
        chomp;
        my( $fn, $ftype, $floc, $fown, $fperm, $optional ) = split( /\t/ );
        mkpath( $floc )  unless( -d $floc );
        copy( $fn, $floc );
        chmod( $fperm, "$floc/$fn" );
}
close( F );

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     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://zipcon.net/spug/





More information about the spug-list mailing list