in reply to Perl replace

@jnpodb is seen by Perl to be an array. And the righthand side of a substitution is subject to double-quote-like interpolation. Therefore, Perl interpolates the contents of @jnpodb into your replacement string. Since that variable exists nowhere else, it's empty, and consequently what gets interpolated is the empty list which is upgraded to an empty string.

If use warnings were in use, you would get a warning about interpolating an undefined value. And if use strict were in use, you would get a fatal compiletime error stating that @jnpodb wasn't pre-declared in scope. More clues about errors is better than fewer clues, so always use strict and warnings.

And as it goes with double-quotish interpolation, you just need to escape the sigil. Thus, this works:

s/whatever/jbdc:oracle:thin:\@jnpodb:1521:tiborcl/

Dave