Well as a followup to my own email.. This works where the while loop does not, so at least now I've found a way to pipe the output of the unix find command into my program :) I'm still not sure I understand why though...
chomp(@files = <>); I had also tried: while (<>) { @files = $_; } but that had the same problem, so somehow the while loop causes the first argument to be dropped from the input stream? > -----Original Message----- > From: Jason Wozniak > Sent: Friday, January 31, 2003 3:05 PM > To: '[EMAIL PROTECTED]' > Subject: Help with input streams > > 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]