我实在是想不通。。

我实在是想不通。。

在自己写的脚本中有一句
`/usr/local/bin/perl   $Current_path/$DBI2/Makefile.PL`;
总是提示
Your perl was compiled with gcc (version 3.4.6), okay.
Can't read 't' directory: No such file or directory at /usr/local/lib/perl5/site_perl/5.8.8/sun4-solaris/DBI/DBD.pm line 3170.

但是如果手动先cd到/usr/local/bin/,再执行perl Makefile.PL就没问题了
这是为什么?
似乎只有到Makefile.PL所在目录才可以运行成功。
那我用`chdir "/software/DBI-1.605/" or die "cann't change dir to /software/DBI-1.605/"`;
似乎也没啥作用,是子进程不能改表父进程的目录?
那我需要怎么做呢?


再加一个问题,呵呵
手工运行
mysql> \. /opt/coolstack/apache2/htdocs/web20php/etc/schema.sql
mysql> exit
我用perl实现为
$location="/opt/coolstack/apache2/htdocs/web20php/etc";
$dbh->do("source $location/schema.sql");
$dbh->do("exit");//这句也会提示语法错误
会提示
DBD::mysql::db do failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'source /opt/coolstack/apache2/htdocs/web20php/etc/schema.sql' at at a.pl line 34.

这是为什么?
thx


#!/usr/local/bin/perl

加入Makefile.PL 第一行。然后再   $Current_path/$DBI2/Makefile.PL  并赋予+x

我 想你是在shell中执行吧?
。。。
我试了下,还是不行
Makefile.PL是自动生成的,想必没什么问题,主要是手动到其所在目录下运行就一切ok了

我也想不通
是不是路径写错了?
我又检查了下,路径是没问题的。
只是perl Makefile.PL时,需要$Current_path/$DBI2/下的t文件夹,而我在外面运行,所以它总是报错
这种情况有什么解决方法么?

谢谢