用join拼接字符串有问题,请大侠看看

用join拼接字符串有问题,请大侠看看

我要把ip.txt的内容读出,再拼接成一条sql语句。但总是只输出ip.txt的内容,不知为什么,请高手指点指点!

!#/usr/bin/perl
open myfile,"ip.txt";

$sqlbegin == "insert into sevencai values(";
$sqlend == ");";

$linetxt = readline myfile;
$newsql = join $sqlbegin,$linetxt,$sqlend;
print $newsql;
perldoc -f join
不用这么拼接吧,直接就用点号连接就行。

$newsql = join "$sqlbegin",$linetxt,$sqlend;



EXPR与LIST区分一下


QUOTE:
原帖由 zhangkeyijian 于 2008-7-16 10:25 发表
$newsql = join "$sqlbegin",$linetxt,$sqlend;



EXPR与LIST区分一下

不行呀,如果写成$newsql = join “insert into sevencai values(",$linetxt,$sqlend;

打出来就成了  
张三,172.16.10.2
insert into sevencai values(

变成两行输出了


QUOTE:
原帖由 ermu 于 2008-7-16 10:24 发表
不用这么拼接吧,直接就用点号连接就行。

也不行,写成$newsql = "insert into sevencai values(".$linetxt.$sqlend;

输出是 insert into sevencai values(张三,172.16.10.2

写成 $newsql = "insert into sevencai values(".$linetxt.“);";

输出是 insert into sevencai values(张三,172.16.10.2
          );
是两行输出
$linetxt = readline myfile;
$linetxt最后有换行符吧,
增加一句chomp($linetxt ),就不会出现换行的情况了吧!


QUOTE:
原帖由 Cludy 于 2008-7-16 11:51 发表
$linetxt = readline myfile;
$linetxt最后有换行符吧,
增加一句chomp($linetxt ),就不会出现换行的情况了吧!

好了,谢了!

但为什么用变量拼接有问题呢?
!#/usr/bin/perl
open myfile,"ip.txt";

$sqlbegin = "insert into sevencai values(";
$sqlend = ");";

$linetxt = readline myfile;
chomp($linetxt);

$newsql = join '' ,$sqlbegin,$linetxt,$sqlend;
print $newsql;

试试这样的。
和你的对比一下。。


QUOTE:
原帖由 Cludy 于 2008-7-16 12:14 发表
!#/usr/bin/perl
open myfile,"ip.txt";

$sqlbegin = "insert into sevencai values(";
$sqlend = ");";

$linetxt = readline myfile;
chomp($linetxt);

$newsql = join '' ,$sqlbegin,$linetxt,$s ...

不行,这样只能打出 $linetxt