Ok, please don't laugh.  This is my very first shot at Perl and if I 
learn something, I'll be putting it to use for more important tasks.

Thanks in advance for any comments.

------------------------------------------------------------
#!/usr/bin/perl

# A dorkey little perl script using File::Find.  The idea is to recurse
# subdirectories and write an .ASX file (sequenced playlist of file 
# names) to each subdirectory for the files located there.

# Aside from the slight "This doesn't work as expected" problem ...
# the following I haven't yet figured out:
#
# 1. The 'outfile.asx' needs to take its name from the current directory
#    name and not be arbitrarily set to some predefined name 
#    (outfile.asx in this case). Maybe munge the fully qualified path 
#    somehow, or go back to READDIR? <g>
#
# 2. How does one set the top directory for File::Find to the directory
#    in which the script is run?

use strict;
use warnings;
use File::Find;

find ( {
   wanted => \&wanted,
   preprocess => \&preprocess,
}, @ARGV);

sub wanted {
   if (-f _) {         # check for avi, mpg, mpeg, divx, etc.?
      open( OUTFILE, ">>$File::Find::dir/outfile.asx" )
         or die( "Cannot open $File::Find::dir/" ."outfile.asx: $!" );
      print( OUTFILE "<Entry>\n" );
      print( OUTFILE "   <Ref href = \"$File::Find::name\"\n" );
      print( OUTFILE "<Entry> \n\n" );
      close( OUTFILE ) 
         or die( "Cannot close $File::Find::dir/" . "outfile.asx: $!" );
   }
}

sub preprocess {
   print "Processing directory $File::Find::dir ...\n";
   open( OUTFILE, ">$File::Find::dir/outfile.asx" )
      or die( "Cannot open $File::Find::dir/" . "outfile.asx: $!" );
   print( OUTFILE "<Asx Version = \"3.0\">\n" );
   print( OUTFILE "<Title></Title>\n" );
   print( OUTFILE "<Abstract></Abstract>\n" );
   print( OUTFILE "<Copyright></Copyright>\n" );
   print( OUTFILE "<Author></Author>\n\n" );
   close( OUTFILE ) 
         or die( "Cannot close $File::Find::dir/" . "outfile.asx: $!" );

   sort { uc $a cmp lc $b } @_;
}

------------------------------------------------------------


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to