Hi Shlomi,
Thanks for your reply.
> Please add "use strict;" and "use warnings;" to your code.
Done. Phew, there was a whole lot of warnings/errors to be fixed :-/
> Why are you using "do" instead of "use" or "require"?
Because I didn't know better :) Changed it to "require" since this is
some kind of config file, containing mainly path variables to be
configured by the user. Now, following another hint, it's like that:
******************* config file *****************
#!/usr/bin/perl
use strict;
use warnings;
our $cuttux='s/db$//g';
******************* main script *****************
sub selTux {
our $cuttux;
DEBUG("$cuttux\n"); # <-- correct!
my $deftux;
($deftux=$db)=~tr/[A-Z]/[a-z]/;
DEBUG("$deftux\n");
$deftux=~$cuttux;
}
> See
> http://perl-begin.org/ for more information and recommended books and
> tutorials.
Thanks for the info, will check.
> Normally <ARGV> - shortened to <> is preferable over <STDIN>;
I initially used this syntax but received an error because I start my
script with 1-2 parameters (one required, second one optional):
oracle:/opt/data/magna/wartung>dbmove.pl T D
Can't open T: No such file or directory at
/opt/data/magna/wartung/dbmove.pl line 291.
Can't open D: No such file or directory at
/opt/data/magna/wartung/dbmove.pl line 291.
With <STDIN> this works.
> You can do one of the following:
>
> 1. Put the left-hand-part of the s/// in a qr// variable:
>
> (Untested)
> <<<
> my $exp = qr{hello$};
>
> my $string = "Time to say hello";
>
> $string =~ s{$exp}{goodbye};
> >>>
>
> 2. You can also try using the stringified eval "" (which could be
error
> prone
> and generally not recommended.
>
> 3. You can try constructing a closure:
>
> (Untested)
> <<<
>
> my $op = sub { my $s = shift; $s =~ s{hello$}{goodbye}; return $s; };
>
> .
> .
> .
>
> print $op->("Time to say hello"), "\n";
> >>>
I am very sorry but I do not understand what you mean. My aim is to
enable the user to define a complete substitution syntax for getting a
username from a database name (after a fixed scheme). (See the code from
the config file above.)
(tr [A-Z] [a-z] always as in code snippet above)
E.g. I have a database name "MYDB" --> username is "my" (s/db$//g)
E.g. I have a database name "STGKK_STP15M3" --> username is "stp15m3"
(s/^STGKK_//g)
Regards,
Nora
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/