The trouble with your code is that <> does
advanced magic: it reads in all the files
on the command line line by line. You can
find out which file you are reading right now
by looking at $ARGV.
So for your little problem,
you could remember what $ARGV was when you
last read a line and check if $ARGV has changed:
my $OLDARGV;
while (<>) {
push(@data, $ARGV) if $ARGV ne $OLDARGV;
push(@data, $_);
$OLDARGV=$ARGV;
}
But I admit that Masems code is
probably easier to figure out.
--
Brigitte 'I never met a chocolate I didnt like' Jellinek
http://www.horus.com/~bjelli/ http://perlwelt.horus.at