[Chicago-talk] filehandles? what am I doing wrong?

Richard Reina richard at rushlogistics.com
Sun Dec 23 08:31:56 PST 2007


I have written a short script that reads data from a file and attempts to separate the data into separate a file when it sees ####### and !!!!!!! as delimiters.  The problem I am having is that the script opens writes and closes the first file with no problem but not additional new files for the rest of the occurrences of 
####### and !!!!!!!

#!/usr/bin/perl -w
# test_file_writer.pl

open(DEV, "<test_FILEEEEEE");

# get a nice date string for naming an email file
my ($yr, $mo, $day, $hr, $min, $sec) = (localtime)[5,4,3,2,1,0];
my $date = $sec . $min . $hr . $day . ($mo + 1) . ($yr + 1900);

while($_ = <DEV>) {

  print $_;        # show the output)

if ($_ =~ /#######/) {

      #this is the beginning of a new file
      print "THIS IS THE BEGINNING OF A NEW FILE\n";
      $write_file = "y";
      open(NEW_FILE, ">NEW_FILE" . $date) || die "CANT OPEN NEW_FILE: $!\n";

}

if ($write_file eq "y") {

      print NEW_FILE $_;

} #end of if

if ($_ =~ /!!!!!!!/) {

      print "Closing File\n";
      close (NEW_FILE) || die "CAN'T CLOSE NEW_FILE: $!";
      $write_file = "n";

} # end of if

} # end of while
## END

Additionally confusing is that it does not die on open or close like one would think if it were unable to open and close.

Here the input file (test_FILEEEEEE):

#######
richard at rushlogistics.com
this is the body of a file
!!!!!!!
#######
richard at rushlogistics.com
this should be seprate file
!!!!!!!
#######
richard at rushlogistics.com
this should be another serperate file
!!!!!!!
#######
richard at rushlogistics.com
this should be another file
!!!!!!!
#######
richard at rushlogistics.com
and this just another
!!!!!!!

After the program executes I end up with only 1 new file like NEW_FILE267523122007 when the script should create 5 of them. 

Any ideas as to where I've gone wrong would be greatly appreciated.

Thanks,

Richard


Your beliefs become your thoughts.  Your thoughts become your words.  Your words become your actions.  Your actions become your habits.  Your habits become your values.  Your values become your destiny.  -- Mahatma Gandhi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.pm.org/pipermail/chicago-talk/attachments/20071223/ed4f75c4/attachment.html 


More information about the Chicago-talk mailing list