in reply to Re: Open in for loop/array structure
in thread Open in for loop/array structure

The expression <$FN$k> reads from the file handle $FN$k

I don't think so. If the text inside <> isn't a simple scalar then the diamond operator turns into glob

Replies are listed 'Best First'.
Re^3: Open in for loop/array structure
by pc88mxer (Vicar) on Jun 02, 2008 at 23:47 UTC
    Oh that makes sense now - forgot about the glob operator.
      $filename = <$FN[$k]>; is still bad, though. Using glob without looping over its results makes no sense.
      use strict; use warnings; my @FN = qw( a b ); for my $k (0..$#FN) { my $filename = <$FN[$k]>; print("$filename\n"); }
      a Use of uninitialized value in concatenation (.) or string at + line 6.

      If @FN contains glob patterns, then he wants

      for (@FN) { while (defined(my $filename = glob($_))) { ... } }

      If @FN contains file names (as it seems to), then he wants

      for my $filename (@FN) { ... }

      Although it looks like @FN isn't needed at all.

      for (0..18, 20..28, 30..38) { my $filename = sprintf('out-02-%02d.txt', $_); ... }