http://www.perlmonks.org?node_id=144032


in reply to All of my terms end up in @foo0

One possibility is that something odd happens when you define @file. Not having seen the code, I'll guess that you have a problem with line endings; you're reading in a file containing file names on separate lines, but the mismatch in line endings means they get read in as a single value.

If that's not it, seeing more of the code would be very helpful.

Replies are listed 'Best First'.
Re: Re: All of my terms end up in @foo0
by jerrygarciuh (Curate) on Feb 08, 2002 at 05:04 UTC
    Per request here is the code. The commented out bit is just problem solving to be sure it wasn't the culprit.
    Thx for lookin'!
    jg
    sub do_the_clean_up { open (ST,"$search_terms_file") or die "where's the search_terms fi +le? : $!"; flock (ST,LOCK_EX) or die "Couldn't flock search_terms: $!"; my @search_terms = <ST>; flock(ST,LOCK_UN); close ST or die "search_terms won't close : $!"; chomp (@search_terms); open (FTS,"$file_to_search") or die "where's the file_to_search? : + $!"; flock (FTS,LOCK_EX) or die "Couldn't flock file_to_search.: $!"; my @file = <FTS>; flock(FTS,LOCK_UN); close FTS or die "Couldn't close file_to_search. : $!"; foreach $term(@search_terms) { if ( !grep { /$term/ } @file ) { $term="$news_directory$term"; push (@delete_me,$term); } else { push (@keep_me,$term); } } chomp @delete_me; unlink @delete_me[0] or die "Couldn't unlink @delete_me[0]: $!"; # open (NEWST,"+< $search_terms_file") or die "where's the search_t +erms file? : $!"; # flock (NEWST,LOCK_EX) or die "Couldn't flock search_terms: $!"; # seek NEWST, 0, 0; # truncate (NEWST,0) or die "Can't truncate: $!"; # foreach (@keep_me) { # print NEWST "$_\n"; # } # flock(NEWST,LOCK_UN); # close NEWST or die "search_terms won't close : $!"; print "Location: $this_script_url\n\n"; exit; }
    _____________________________________________________
    If it gets a little bit out of hand sometimes, don't let it fool you into thinkin' you don't care.TvZ
      Ah, just as I had guessed, @file is being read in from an external file. So, the file probably has the wrong line endings for the system. Either convert the file to have the appropriate line endings, or change your code so that it can deal with any line endings.

      Here's a very simple, but probably not optimal, example of the latter:

      { local $/; my @files = split /\r\n?|\n\r?/, <FTS>; }