I am trying to put together a search and replace program that I can string together with typical unix shell commands like find, and grep. However, I can't get past the initial read of the files I want to process, using the diamond operator. I lose the first argument in the list every time. I put the below code together for debugging purposes to figure out what's going on.
while (<>) { @files = <STDIN>; } $count = scalar @files; print "There are $count files in the process list!\n"; print @files; When I run this with the command: find /u06 -name glog.log.bak* | /export/home/jwozniak/fm.pl It drops the first file in the list for output. The find command by itself returns 10 files as follows: /u06/logs/glog.log.bak.3 /u06/logs/glog.log.bak.4 /u06/logs/glog.log.bak.1 /u06/logs/glog.log.bak.2 /u06/logs/glog.log.bak.5 /u06/logs/glog.log.bak.6 /u06/logs/glog.log.bak.7 /u06/logs/glog.log.bak.8 /u06/logs/glog.log.bak.9 /u06/logs/glog.log.bak.10 However the output piped to my perl program drops the first line of input every time. For some reason /u06/logs/glog.log.bak.3 does not make it into the files array? Regardless of whether if I pipe it in from the find command or simply read the same data in from a file, and instead the output from perl is as follows There are 9 files in the process list! /u06/logs/glog.log.bak.4 /u06/logs/glog.log.bak.1 /u06/logs/glog.log.bak.2 /u06/logs/glog.log.bak.5 /u06/logs/glog.log.bak.6 /u06/logs/glog.log.bak.7 /u06/logs/glog.log.bak.8 /u06/logs/glog.log.bak.9 /u06/logs/glog.log.bak.10 What am I missing? Regards, Jason Wozniak -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]