bh_perl has asked for the wisdom of the Perl Monks concerning the following question:

This node falls below the community's minimum standard of quality and will not be displayed.
  • Comment on Script crazy after a lot of testing and terminating

Replies are listed 'Best First'.
Re: Script crazy after a lot of testing and terminating
by arthas (Hermit) on Jul 22, 2003 at 08:57 UTC

    The thing seems rather unclear. Could you post the code that gives you these problems?

    Thanks, Michele.

      This is my code, if you means my script:
      while (1) { my @entries = (); my $ref_entry = {}; $/ = ""; open( F, " $cat test |" ) or warn("Can't executed $cat\n"), next; while (<F>) { $\ = ""; next if $_ =~ /^\d+:/; print("$_\n"); foreach ( split /\n/ ) { $$ref_entry{$1} = default($2) if /^(\w +?)\s+:.(\d+)/; $$ref_entry{$1} = default($2) if /^(\w +?)\s+:.'(.*)'/; $$ref_entry{$1} = default($2) if /^(\w +?)\s+:.>(.*)</; print "$1 ==> $2\n"; } push @entries, $ref_entry; } close(F); calreport(@entries); splice(@entries); }

      update (broquaint): removed <pre> tags and added <code>, also perltidyed code to avoid unnecessary code wrapping

        Well, your $/ = ""; causes your while (<F>) to slurp the entire file into $_ and the while statement executes once. Setting $\ = ""; is somewhat unncecessary as that's its default (unless you run with -l). The structure of your foreach is...umm...interesting. Splicing the array is unnecessary since it falls out of scope at the end of the outer while. I don't know what $cat contains...I suspect it's a program but? Does the program return different data each time it's called? Beyond that, what is this script doing that you aren't expecting?

        antirice    
        The first rule of Perl club is - use Perl
        The
        ith rule of Perl club is - follow rule i - 1 for i > 1

Re: Script crazy after a lot of testing and terminating
by cLive ;-) (Prior) on Jul 22, 2003 at 08:56 UTC
    It's hard to help if you don't post the code.

    cLive ;-)