LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2291|回复: 24

[已解決][誤解]一个新手的问题

[复制链接]
发表于 2004-4-5 15:55:46 | 显示全部楼层 |阅读模式
我输入了下面的语句,
$Word1="thank";
print $Word1;
运行时出现错误“Global symbol "$Word1" requires explicit package name
为什么呢?我完全按书上写的呀!请各位帮忙
发表于 2004-4-5 23:05:32 | 显示全部楼层
#cat test.pl
$World1="thank";
print $World1 ;
# perl test.pl
thank#

是因为你的文件名没有.pl后缀吗?有的编译器要求perl脚本有.pl后缀的。。你试加上看看。。
发表于 2004-4-6 23:24:57 | 显示全部楼层
楼主的详细运行过程是怎样的呢?
 楼主| 发表于 2004-4-7 14:10:39 | 显示全部楼层
我用的是perlbuilder2,输入代码后,编译时就出现上述问题
发表于 2004-4-7 15:52:39 | 显示全部楼层
请楼主把完整的脚本贴出来还有脚本的名字。
perlbuilder2是WIN32下最好的编辑器,象vi.
perlbuilder2 is the best on win 32 although I also
like vi.
发表于 2004-4-8 22:24:53 | 显示全部楼层
因为你用了use strict;这行语句。在strict pragma的作用下,$word是不能随意创建的。你可以改为my $word = "...";或者our $word = "..."就可以了!
发表于 2004-4-8 23:16:30 | 显示全部楼层
print语句要加换行符才能输出结果的。
发表于 2004-4-8 23:51:39 | 显示全部楼层
最初由 redspider 发表
print语句要加换行符才能输出结果的。


没这个说法
发表于 2004-4-9 13:34:58 | 显示全部楼层
最初由 roby 发表
没这个说法


我直接运行这个脚本就不能输出结果
$Word1="thank";
print $Word1;

一定要改成
$Word1="thank\n";
print $Word1;

或者
$Word1="thank";
print "$Word1\n";
才能输出,能否指点一下是什么原因
发表于 2004-4-9 13:56:27 | 显示全部楼层
最初由 devel 发表
#cat test.pl
$World1="thank";
print $World1 ;
# perl test.pl
thank#

是因为你的文件名没有.pl后缀吗?有的编译器要求perl脚本有.pl后缀的。。你试加上看看。。


上面已出运行结果了,仔细看。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表