В главном index.cgi идёт:
use strict; use vars \'xxx\';
#.....
require "$way{\'binaries\'}".\'/\'.\'subprograms.pl\';
В файле subprograms.pl:
#.......
use strict;
#.......
29:#_________________________________________________________________
30:sub fopen ($$;$) {
31: my ($filemodeB, $fileopenstring);
32: my ($filehandle, $filename, $filemodeA) = @_;
33: if ($filename =~ m~/\\.\\./~) { &process_crash("$locale{\'6\'} \\\'$filename\\\'. $locale{\'7\'}"); }
34: $filename =~ tr~\\\\~/~;
35: $filename =~ s~[^/0-9A-Za-z#%+\\,\\-\\ \\.@^_]~~g;
36: if ($filemodeA eq \'towrite\') {$filemodeB = \'>\';}
37: elsif ($filemodeA eq \'toadd\') {$filemodeB = \'>>\';}
38: else {$filemodeB = \'<\';}
39: $fileopenstring = "$filemodeB"."$filename";
40: CORE::open($filehandle, $fileopenstring) || die("$locale{\'5\'}: $filename. \\n $locale{\'259\'}: $!");
41: if ($sysvar{\'use_flocking\'} eq \'yes\') {flock $filehandle, 2;}
42: return 1;
43:}
далее идёт вызов:
fopen(\'USERDATA\', "$way{\'users_home\'}/$checkusername/userdata");
Это даёт ошибку апача:
Software error:
Can\'t use string ("USERDATA") as a symbol ref while "strict refs" in use at bin/subprograms.pl line 40.
For help, please send mail to the webmaster (webmaster@SteelRatS), giving this error message and the time and date of the error.
Что делать?