At 14:11 2002.03.04, Kypa, J. (Jagan) wrote: >$old = "$LeafPreName.acf"; >$new = "$old".".tmp"; >$bak = "$old".".orig"; > >open(OLD, "<$old"); >open(NEW, ">$new"); > >while (<>) { > if ($. == 3) { > print NEW "INTEGRATOR/ ERROR=5.0E-2, HINIT=2.5E-4,HMAX=2.5E-4, >KMAX=6, MAXIT=10\n"; > } >} >close(OLD); >close(NEW); > >rename($old,$bak); >rename($new,$old);
The <> read fro STDIN or the files that you give as parameter to the script (one after the other). You open OLD but never read it... Also, you need to print every lines to NEW, net just the third one. So your while loop should be: while (<OLD>) { print NEW "INTEGRATOR/ ERROR=5.0E-2, HINIT=2.5E-4,HMAX=2.5E-4, KMAX=6, MAXIT=10\n" if ($. == 3); print NEW; # Print $_ to NEW. } As a bonus, when there is only one expression with the if, you can put it in one line. Hope this helps. ---------------------------------------------------------- Éric Beaudoin <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]