免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2079 | 回复: 8
打印 上一主题 下一主题

求助!变量名问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-13 12:01 |只看该作者 |倒序浏览
偶想将一个文件的每一行做为值赋给一个变量,假如文件有10行,就自动按从1 至 10起这个变量的名字。即生成:
var1
var2
var3
.......
var10
如何来做呢??请大侠们指点..谢谢~

论坛徽章:
0
2 [报告]
发表于 2004-11-13 14:36 |只看该作者

求助!变量名问题。

my $i = 1;
while(<FH> {
${var$i} = $_;
$i++;
}

论坛徽章:
0
3 [报告]
发表于 2004-11-18 21:20 |只看该作者

求助!变量名问题。

你通过了麽   我试着不行  无法输出   ${var$i}

论坛徽章:
0
4 [报告]
发表于 2004-11-18 21:33 |只看该作者

求助!变量名问题。

我试过了
加个引号就可以了
${"var$i"}

论坛徽章:
0
5 [报告]
发表于 2004-11-19 09:41 |只看该作者

求助!变量名问题。

oh?  no,no,  我的rh9,solaris都不行    你用什么os?

论坛徽章:
0
6 [报告]
发表于 2004-11-19 10:53 |只看该作者

求助!变量名问题。

我的Win32

#!/usr/bin/perl

my $i = 1;
while(<DATA> {
${"var$i"} = $_;
$i++;
}

print "$var3";

__DATA__
var1
var2
var3

论坛徽章:
0
7 [报告]
发表于 2004-11-19 12:16 |只看该作者

求助!变量名问题。

嗯。。  基本上修改了之后可以输出  可是有问题啊     
我的意思是通过再次赋值$i,访问${"var$i"}  

  1. [gag@genomic-server perl]$ more 2
  2. #!/usr/bin/perl -w

  3. #use strict;
  4. our $b=5;
  5. our $perl5="aaa";
  6. sub print ( $ ) {
  7.         my $one=$_[0];
  8. #       my $one=shift;
  9.         print ${"perl".$one},"\n";
  10. }
  11. #&print("5");
  12. print ${"perl".$b},"\n";
  13. [gag@genomic-server perl]$ perl 2
  14. aaa
复制代码
我试了下  如果定义my 是通不过的  需要定义为our     (不解)      而且需要注释掉use strict;  (不注输出不了 ??   )    apile知道是为何麽     
另外楼主的问题可以用DB_File来解决  读到array里    方便的很    喜欢的话可以写成类

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
8 [报告]
发表于 2004-11-19 12:55 |只看该作者

求助!变量名问题。

#!/usr/bin/perl -w

  1. use strict;
  2. my  $b=5;
  3. my  $perl5="aaa";
  4. sub print($) {
  5.         my($one)=@_;
  6.         print ${"perl".$one},"\n";
  7. }
  8. #&print("5");
  9. print ${"perl".$b},"\n";
复制代码

namespace的問題...基本上lexically scope variable..
只存在於他自己所屬的{} or scope....
所以啦...你如果不用our or local宣告...則他只會存在於subroutine之外的
namespace...因為subroutine有用{}產生另一個區間...

所以當你在print裡面要使用外面宣告成lexically的variable...
他會找不到...
our -->; pacakge variable 在上面例子中屬於main 這個package..
local global都應該可以....
當開啟use strict的時候..寫程序很像在寫C...
再想想吧

论坛徽章:
0
9 [报告]
发表于 2004-11-19 16:14 |只看该作者

求助!变量名问题。

哦  明白了   
加双引号之后变成了符号引用    便到包的符号表里去查找   
而用my声明的词法变量不在包的符号表里 顾不得见   需加our
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP