免费注册 查看新帖 |

Chinaunix

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

请教一个程序顺序问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-12-19 15:09 |只看该作者 |倒序浏览
    有个程序,初始化全局变量有几百行。我想把我运行的程序放在全局编程前面,这样方便查找,怎么弄?

如下,我想先运行two部分,因为都是全局变量。但是one放在two前面,因为这样全局变量太多,不然我发给同学后,他要找很久,有没有什么办法?



####one
$aaa="ATGC";
$bbb="TCGA";
get_tm($aaa, $bbb);

####two
my $a=0;
my $b=1;
my $c=2;
my $d=3;
...
...
...

####three
sub get_tm{
...
}

论坛徽章:
0
2 [报告]
发表于 2012-12-19 15:19 |只看该作者
版主,只能靠你了

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
3 [报告]
发表于 2012-12-19 15:24 |只看该作者
想要改变程序运行顺序只有 BEGIN INIT CHECK 这些块。在最开始声明下变量然后 TWO 用 BEGIN 圈起来

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
4 [报告]
发表于 2012-12-19 15:32 |只看该作者
或者用 vim 把 TWO 部分给折叠起来

论坛徽章:
0
5 [报告]
发表于 2012-12-19 15:35 |只看该作者
回复 4# zhlong8


    这样是可以,但是这样感觉不是很好吧,我记得有begin什么的应该也能实现。  其实我想过用子函数,关键是这是全局变量,括起来就不是全局变量了。

论坛徽章:
0
6 [报告]
发表于 2012-12-19 15:38 |只看该作者
回复 3# zhlong8


    begin圈起来也失去了全局变量的效果吧?如果在前面定义,那还是很大一块,况且还有哈希,还有嵌套的变量,也不简单。

    实在不行,只能做成包了。。。。。。

    非常感谢zhlong8一直帮助。

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
7 [报告]
发表于 2012-12-19 15:40 |只看该作者
回复 5# lxb456811


    用 BEGIN 要注意作用域的问题,必须要在开始声明除非你不用 strict。可以考虑重构下提供个 OO 的接口把初始化部分给抽象出来也方便重用

论坛徽章:
0
8 [报告]
发表于 2012-12-19 15:46 |只看该作者
  1. goto label2;

  2. label1:
  3. my $par1 = 111;

  4. goto label3;

  5. label2:
  6. my $par2 = 222;

  7. goto label1;

  8. label3:
  9. my $par3 = 333;
复制代码
回复 1# lxb456811


   

论坛徽章:
0
9 [报告]
发表于 2012-12-19 15:49 |只看该作者
回复 7# zhlong8

thanks.
   

论坛徽章:
0
10 [报告]
发表于 2012-12-19 15:51 |只看该作者
回复 8# Perl_Er


    这代码很有趣,学习了,非常好。。。。。。。
    不过看起来不专业,做项目不敢这样搞来搞去,好像在讲笑话。。。。。
    非常感谢您的帮助,谢谢,学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP