谁帮俺看看我这很小段的perl到底错在哪里了,拜谢

谁帮俺看看我这很小段的perl到底错在哪里了,拜谢

$fs="/software/test";
`chdir $fs`;

defined(my $pid= fork) or die "Cannot fork: $!";
unless ($pid){
`chdir $fs`;
`more 1`; // /software/test里有1这个文件
}

我是希望通过起一个新进程来使chdir生效,这样的想法理论上可行么?
可以做到么?
总是提示 1: No such file or directory
说明chdir没起到作用。。



my $location = "source /opt/coolstack/apache2/htdocs/web20php/etc/schema.sql";
$dbh->do("$location");
提示
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 m.pl line 36.
这又是为什么?



谢谢大家

把报错贴上来看下
我要顶一下。。。。
老大要的急,我又是刚接触,大家都多帮帮忙把 谢谢啦
把两处
`chdir $fs`;
改成
chdir $fs;
试试看。

还有,你的注释符号应该用错了。
没看明白,需求是啥?
读取1那个文件?
1
`chdir` 你只是去调用shell 获得了一个输出
2
my $location = "source /opt/coolstack/apache2/htdocs/web20php/etc/schema.sql";
$location的内容是"source /opt/coolstack/apache2/htdocs/web20php/etc/schema.sql"这个字符串 而不是sql文件的内容


QUOTE:
原帖由 hfahe 于 2008-7-22 15:05 发表
1
`chdir` 你只是去调用shell 获得了一个输出
2
my $location = "source /opt/coolstack/apache2/htdocs/web20php/etc/schema.sql";
$location的内容是"source /opt/coolstack/apache2/htdocs/web20php/etc ...

第一个问题解决了,谢谢
直接用chdir就可以了 不能加``

第二个问题:
我就是想执行
/opt/coolstack/apache2/htdocs/web20php/etc/schema.sql这个脚本

不是看schema.sql中的内容

这样怎么不对?多了对“”?
我需要up下。。
最后一个问题了 :)

想执行
\.  /opt/coolstack/apache2/htdocs/web20php/etc/schema.sql


用perl实现如下:
my $location = "\\. /opt/coolstack/apache2/htdocs/web20php/etc/schema.sql";
$dbh->do($location);
这个有错么?我觉得没错啊
但总是提示语法错误。。。。。。。。。。。。。。。。。。。


QUOTE:
原帖由 hzl1984 于 2008-7-22 14:47 发表
把两处

chdir $fs;
试试看。

还有,你的注释符号应该用错了。

或者把
`chdir $fs`;
改成
`cd $fs`;


你是把perl语法和shell命令搞混了