[Rt-devel] Modification of a read-only value attempted at
/opt/rt3/bin/rt line 1155
Jason Parsons
jparsons-lists at saffron.net
Tue Aug 17 04:56:54 EDT 2004
$ perl -v
This is perl, v5.8.4 built for sun4-solaris-64
$ cat /etc/rt.conf
user jparsons
$ ./rt-3.2.0/bin/rt
Modification of a read-only value attempted at ./rt-3.2.0/bin/rt line
1155.
It seems that $_ is read-only within sub parse_config_file, and so
can't be modified by 'while (<CNF>)'. This works for me:
--- ./rt-3.2.0/bin/rt 2004-07-07 14:52:28.632210000 -0400
+++ /opt/rt3/bin/rt 2004-08-17 04:37:50.467497000 -0400
@@ -1148,22 +1148,22 @@
# Makes a hash of the specified configuration file.
sub parse_config_file {
- my %cfg;
+ my %cfg = ();
+ my $val;
my ($file) = @_;
- open(CFG, $file) && do {
- while (<CFG>) {
- chomp;
- next if (/^#/ || /^\s*$/);
-
- if (/^(user|passwd|server|query|orderby)\s+(.*)\s?$/) {
- $cfg{$1} = $2;
- }
- else {
- die "rt: $file:$.: unknown configuration directive.\n";
- }
+ open(CNF, $file) || return %cfg;
+ while ( $val = <CNF> ) {
+ chomp $val;
+ next if ( $val =~ /^#/ || $val =~ /^\s*$/);
+
+ if ( $val =~ /^(user|passwd|server|query|orderby)\s+(.*)\s?$/)
{
+ $cfg{$1} = $2;
+ }
+ else {
+ die "rt: $file:$.: unknown configuration directive.\n";
}
- };
+ }
return %cfg;
}
--
Saffron Solutions, Inc. <http://www.saffron.net>
A customer-focused IT services company offering
computer system, network, and security consulting.
More information about the Rt-devel
mailing list