that's ok! thanks! my goal is to run the system app command only if the file handle OUT is greater than 0 bytes else create a runfile. You say test @ftapes but you never said how? is there a better way to just create a file rather than opening it and doing nothing. currently I am stating
my $foo="/tmp/ftapes_runfile"; open (RUNFILE, ">$foo") || die "could not open runfile: $!;" open (OUT, ">$foreigntapes") || die "could not open file:$!"; my @ftapes = grep s/^barcode=//, `evmvol -w label_state=3`; select( (select(OUT), $|=1 ) [0] ); print OUT "@ftapes"; if ( -s OUT ) { ..... } Derek B. Smith OhioHealth IT UNIX / TSM / EDM Teams 614-566-4145 Bob Showalter <[EMAIL PROTECTED]> 06/08/2004 11:40 AM To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> cc: [EMAIL PROTECTED] Subject: RE: if -s clause [EMAIL PROTECTED] wrote: > ok so here is what I did and it is now working. > > one thing I do not fully understand is the diff between > my $svsel = select; select OUT ; $|=1; > and > select (select(OUT), $| = 1 ) [0] ); > > the second line works while the first does not and > from my understanding I am selecting OUT and never re-selecting the > original filehandle? My bad. I should have added select($svsel) to the first line in order to reselect the previous handle (i.e. STDOUT). But as I said before, this is NOT the right approach to your problem. Just test your @ftapes array and be done with it.