页面重新载入中...

如果页面没有重新载入. 请点这里.

Redirecting page to

If the page is not fully redirected. 请点这里.

perl脚本运行的两个问题
来自: perl编程交流 2016-07-01 03:25 0 181 0

我在运行某个流程的主程序脚本的时候,经常会出现几个问题,让人很头疼。经过版主的帮助,终于理解了问题所在。在此,将我遇到的问题和解决方式分享出来,同时也是对版主耐心讲解的一种致敬。

我运行的主程序miRDeep2.pl,它会调用各种程序,比如sanity_check_mature_ref.pl,在调用的时候,它是直接运行

sanity_check_mature_ref.pl 05.mirdeep2_c/mature.hsa.fa  (1)

而不是:

perl /path/mirdeep2_0_0_7/sanity_check_mature_ref.pl 05.mirdeep2_c/mature.hsa.fa   (2)

 

也不是:

/path/perl/5.16.3/install/bin/perl /path/mirdeep2_0_0_7/sanity_check_mature_ref.pl 05.mirdeep2_c/mature.hsa.fa (3)

1. perl解释器的选择问题

第一种运行的时候:sanity_check_mature_ref.pl 05.mirdeep2_c/mature.hsa.fa  (1)

会按sanity_check_mature_ref.pl脚本第一行的/usr/bin/perl 来找perl解释器,也就是说,用/usr/bin/perl来运行脚本。

而且,加入你的目录中有多个“sanity_check_mature_ref.pl”脚本,最终运行的,将是在你的PATH中最先找到的那个“sanity_check_mature_ref.pl”。

 

第二种运行的时候:perl /path/mirdeep2_0_0_7/sanity_check_mature_ref.pl 05.mirdeep2_c/mature.hsa.fa  (2)

会用你PATH中最先找到的那个perl解释器来运行脚本。

第三种:/path/perl/5.16.3/install/bin/perl /path/mirdeep2_0_0_7/sanity_check_mature_ref.pl 05.mirdeep2_c/mature.hsa.fa (3)

会用/path/perl/5.16.3/install/bin/perl来运行脚本。

 

用二、三种方式运行的时候:

因为 脚本“sanity_check_mature_ref.pl” 第一行(shebang line):#!/解释器/的/路径 是 #开头的,

那一行就会被作为注释而忽略。

 

2. 模块调用问题:

perl程序在运行过程中长调用其他模块。一般地说,perl都是在@INC中挨个地搜索要调用的模块的,@INC可以在“.bashrc”文件中的export PERL5LIB="/PATH/VEP/ensembl-tools-release-80:$PERL5LIB"来设置。

因此,上面三种运行方式,都能在@INC中搜索所需要的模块。但是有的模块可能跟perl解释器绑定在一起的。这类模块有可能是C语言实现的,需要编译。这种模块,你要调用,就必须保证你所用的perl解释器安装了该模块,否则无法调用,也无法用@INC来设置。

以下是群主当时的解释:

=========================================================================================

你执行一个程序的时候, 如果是脚本文件,

脚本文件会有第一行 #!/解释器/的/路径

这个叫做 shebang line, 这一行的作用就是告诉内核, 用哪个解释器来执行这个脚本文件。

而当你在命令行用    /完整路径/的/perl  脚本.pl

这个语法执行的时候, 因为 #!/解释器/的/路径 是 #开头的,

那 那一行就会被作为注释而忽略。

当时当你用   脚本.pl  执行的时候,

内核会在文件的头几行找 shebang line,

=========================================================================================

 

 

查看讨论
0.16版本发布以前需要处理的html内容。
来自: 电器网站开发讨论 2016-02-20 15:07 0 11 0

产品资料展示页面

用户账号资料显示页面

有些产品没有图片的, 显示自带没有图片的图片

供求信息的页面, 图标都是用百姓网的 (收藏/转发/举报) (需要更换)

企业站顶部图片换成更合适的

搜索页面的 checkbox 修改

登录/注册页面 图片需要更换

公司网站默认主题。

现在那4个链接分别是 资讯管理/招募人才/新闻投稿/公司资料

密码找回页面, 设计成流程和布局的。 第一步的流程在附件里。 顶部增加一个步骤的导航, 让用户知道他在第几步。

当用户登录以后, 会员登录和立即注册这里需要改成其他的。 底部 就是 发布资讯/发布招聘

wiki/search page fixes

列表样式的两个图标

feedback-page

report dialog

反馈列表 (操作: 查看/已解决/删除)

公司管理

公司后台管理首页

评分修改, 用图片和背景的百分比来实现。

找回密码相关页面。

公司简单的资料查看页。

top_bar那一栏的弹出窗口需要重新布局。

还有收藏夹相关的弹出窗口也要布局。
 

查看讨论
关于机器码到汇编的 初级探讨。
来自: asp.net,C++等编程学习交流 2016-01-16 01:08 0 179 0

   要做一个单片机的8位的 机器码反汇编。发现多年以后很多东西都忘了。

   开始我思考的是,直接给每条指令写一个函数,用map来搜寻,相对应的指令。但是一条指令所执行的机器码有很多种,这样查找就必须用正则匹配后,进行传入参数。

   这时候我又思考,能不能把正则也装入map里面呢?但是这地方我不想做过多的探讨。这条路感觉是设计的邪路。但是这种方式是可以应对16位32 64位的。但是目前这种东西工程浩大。

   然后我就采用另外的一种方式。为什么我不用穷举法,把所有的结果全部装入表中,利用查表进行转换呢?

  8位的单片机,但是他的寻址是0000到FFFF。也就是F*F*F*F 的组合方式,也不多嘛。也就65536种。

  好吧,但是这张表有多大?初始化需要多长时间??于是今晚我又做了测试。我用字符串随机组合了 7万条 key val 表。

 内存占用情况是在15M到30M之间, 是可以接受的范围之内的。初始化的时间在debug下8秒左右。在release版本下,不到1秒、

然后我把这张表,全部遍历查找,每个都进行find(),时间在debug下跑了几分钟没结果。但是release下,3秒便可全部把7万条记录遍历完毕。

最终得出的结果是:这个算法是可行的,速度也比较客观,几乎~~没有等待时间。

 

总结下:这种穷举的方法,不错,而实际算法的时间的计算,不如计算机实际运行算的准确。

 

大体流程如下,初始化的时候,初始化这张表。当然这张表,是可以写入文件中,程序运行时候,可以直接读取文件进行初始化MAP,也可以在内部,用代码,从0XXX到FXXX进行初始化。初始化之后,为此表设计查找函数,并且输出结果。这样核心部分算是完成。

 接下来,可以选择一个UI,MFC即可。用的是VS2013开发,可能运行程序的时候需要安装VC2010运行库,甚至需要VC++2012运行库,这个就得提醒用户打补丁了。也可以,采用较低版本的VS进行编译,舍弃使用C++11代码。今天暂时写到这。

查看讨论
新模板记录~~
来自: 魔奇开发内部讨论组 2015-12-27 21:41 0 4 0

包含的命令是
<: include "模板文件" :>,include 是插入

<:     :>        这组标记包含的内容, 都是模板指令, 这个可以跨行

:    后面一个空格的,  这个表示整行是模板指令

用途都是给模板系统发指令

 

: include "模板路径"

这个就表示当前位置插入 路径指向的模板内容

 

: block content -> { }

这一行表示定义了一个  content 的内容块

实际上你可以用   : block abcdefg -> { }

这样就可以定义一个名字为 abcdefg  的内容块,现在这个内容块的内容是空的

 

: cascade "layout/default" { body_css_class => "signin", no_header => 1 }

这样一行代码 layout/default  的意思 就是 使用 "layout/default"  作为这个页面的基本模板

后面的  { body_css_class => "signin", no_header => 1 }  这个是传递给 使用 layout/default 这个页面的参数

这个例子传递了两个参数 ,一个是 body_css_class  还有一个是 no_header。

【【【

<body class="<: $body_css_class :>">

: if !$no_header {
        <: render('share/header') :>
      : }

】】】

 

 

cascade 和 include 这两个指令都不带括号的

: include "abcefg"

 

: override content -> {
   这个页面要覆盖的内容
: }

 

查看讨论
加载更多