perl学习日记
文章平均质量分 64
半个馒头
这个作者很懒,什么都没留下…
展开
-
把文本格式转换为二进制格式(Linux系统中)
在一些应用中我们时常需要一些二进制不可读的文件,于是转换格式就是一个必不可少的过程,下面是用perl写的代码:代码:use strict;my $file=shift;binmode(STDOUT);open IN,$file or die $!;while(){ for my $out(split /\s+/,$_){原创 2012-02-14 23:02:56 · 7513 阅读 · 0 评论 -
the perl script of Tajima's D (backups)
#!/usr/bin/perluse strict;use warnings;=c---------------------------------------this perl script is edited to compute tajima's Dthe origin file path is :/ifs5/ST_COMG/USER/yanzengli/tajima原创 2012-04-16 10:27:16 · 2803 阅读 · 0 评论 -
File::Basename module
File:Basename module =1= use File::Basename;=2= use File::Basename qw/basename, dirname, fileparse/=3= use File::Basename qw/basename/;=4= use File::Basename qw//;=5= use File::Bas原创 2012-05-28 23:21:42 · 2815 阅读 · 0 评论 -
正则表达式--模式匹配--特殊变量(2)
$- | $+ | @+ | @- 与模式相关的变量在整个发生模式匹配的动态范围内都可见,换句话说,他们就像是local声明的一样,不用自己定义就能使用。 @+ à @LAST_MATCH_END@- à @LAST_MATCH_START$+ à $LAST_PAREN_MATCH$^R à $LAST_REGEXP原创 2012-05-11 22:09:44 · 1881 阅读 · 0 评论 -
正则表达式--模式匹配--特殊变量(1)
$` | $& | $’ | $1 | $2 | $n >>>每一次成功的匹配了一个模式(包括替换),操作符都会把变量$`|$&|$’分别设置为匹配内容左边的内容,匹配的内容和匹配右边的文本,这个功能对字符串分解为组件很有用。>>>为了有更好的颗粒度和提高效率,你可以用圆括弧捕捉你特别想分离出来的部分。每对圆括弧捕捉与圆括弧内的模式相匹配的子模式。圆括弧由左圆括弧的位置从左到右依次原创 2012-05-11 20:26:52 · 1922 阅读 · 0 评论 -
blat analysis
usage: blat database query [-ooc=11.ooc] output.pslwhere: database and query are each either a .fa , .nib or .2bit file, or a list these files one file name per line. -ooc=原创 2012-07-08 12:28:02 · 5494 阅读 · 1 评论 -
子过程实践
1。数组输入到子过程的是数组存储第一个元素的地址。也就是说不论原始数组中有多少元素,输入的@_中只有一个元素,首地址。接受首地址的变量必须是加括号的比如"($aa)"不能是“$aa"。而且遍历@_是没有任何意义的(其中只有一个元素,首地址)。" foreach ( @_ ) "这个和列表有着本质的区别,列表不论输入的元素有多少,输进去的依旧是列表元素,不是列表所在的地址。可以用$_[$原创 2012-11-07 22:38:53 · 913 阅读 · 0 评论 -
数组和哈希的数值排序问题(sort)
在perl中对数组或者散列进行排序的工具是sort,在这儿,一般分为两种,字符串和数值(阿拉伯数字)排序问题,sort默认的情况是使用Ascall码排序。1、sort format >> sort USERSUB LIST >> sort BLOCK LIST >> sort LIST在此,LIST其实就是一个列表,比如一个数组,或者散列使用keys进行转换。缺省US原创 2012-12-08 14:39:47 · 3284 阅读 · 0 评论 -
Interpreted Languages: Perl, PHP, Python, Ruby (Sheet One)
文章来自于:http://hyperpolyglot.org/scripting a side-by-side reference sheetsheet one: grammar and invocation | variables and expressions | arithmetic and logic | strings | regexes |转载 2014-02-24 10:52:48 · 3744 阅读 · 0 评论 -
cut chromosome to scanffolds.
#!/usr/bin/perluse strict;use warnings;die "\nUsage: cut chromosome to scaffolds;\ncommands:\nperl $0 snpdata scafflod.use.list pb/bb\n\n" if ( @ARGV != 3 );my $snpdb = shift;my $scaf_li原创 2012-04-16 10:30:45 · 654 阅读 · 0 评论 -
perl -- 子过程 -->数组参数传入
1、一个数组参数的出传入:#!/usr/bin/perluse strict;use warnings;my @a = 1..10;my $total = sum(\@a);sub sum { my ($tt) = @_; print "$tt\n"; my $total = 0; foreach原创 2012-03-04 17:16:44 · 891 阅读 · 0 评论 -
tr函数
tr函数能以一一对应的方式将搜索字符串中的字符转译为替换字符串中的相应字符。tr函数的返回值是替换的字符总数。tr函数不能解释正则表达式中的元字符,但允许通过散列变量表示某个范围内的字符。这里可用字母y来替换tr,该特性继承自UNIX,因为后者提供的sed实用工具中有一个y命令。该命令也能用于转换字符,其效果类似于UNIX中的tr命令。这也从另一方main说明了UNIX在Perl开发过原创 2012-02-26 22:17:41 · 5491 阅读 · 0 评论 -
perl中同时读取两个文件并进行对应计算
用句柄读取大文件进数组是很占内存的事,所以,一边读数据,一边处理数据,处理完之后就直接输出到文件,这是个很靠谱的想法,尤其是处理特大数据的时候,这个想法尤其珍贵。下面是具体例子:输入文件1:31 032 033 034 035 036 037 038 039 040原创 2012-02-28 21:31:40 · 5460 阅读 · 0 评论 -
求fst的模板程序
文件对象:两个有位置信息的文件,比如polar bear 和blown bear的数据,实例如下:数据:ChrB01 84 0.000000 -3.517875 -9.131150 -16.843100 -25.121834 -33.764550 -42.704869 -51.924288ChrB原创 2012-02-28 22:32:54 · 1030 阅读 · 0 评论 -
查找顺序排列
一个文件有N列,其中某一列(第一列)为顺序数字,现在的任务是查找这些顺序数字是否为完全顺序,即上一个和下一个的间距为1.文件例子:ChrB01 1 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.原创 2012-02-28 20:07:43 · 121 阅读 · 0 评论 -
perl语言svg制图模板化
svg制图如果不转换坐标的话,很容易弄错坐标是怎么转换的,这儿把坐标一般化,用几何画板把各个一般化的各个点坐标给标出来,然后以后要是用的话就可以直接作图,方便多了。(这儿用的是perl语言,所以每个变量都是用perl语言的变量转换的)分为两部分:1、图片坐标的说明 2、perl语言程序的实例展示代码:use strict;use warnings;use原创 2012-03-02 23:37:42 · 7176 阅读 · 0 评论 -
perl -- 子过程-->语法
1、声明一个命名子过程,但不定义:sub NAMEsub NAME PROTOsub NAME ATTRSsub NAME PROTO ATTRS如果要定义一个子过程,只要在上面加上一个BLOCK就可以了sub NAME PROTO ATTRS BLOCKPROTO和ATTRS表示原型和属性,相对于NAME和BLOCK不重要,NAME和BLOCK是基本原创 2012-03-04 15:48:27 · 994 阅读 · 0 评论 -
perl -- 子过程 -->列表处理
1、定义子过程最普通的例子:sub razzle{ print "OK,you have been razzled.\n";}razzle();#:省略了输入参数和输出(返回值)。#:perl向子过程传入数据和子过程传出数据的方法:所有传入的参数被当成单个平面标量列表,类似的多个返回值也被当做单个平面标量列表返回给调用者;当使用LIST也一样,任何原创 2012-03-04 16:28:31 · 723 阅读 · 0 评论 -
substr summary
substr总结:substr EXPR,OFFSET,LENGTH,REPLACEMENT substr EXPR,OFFSET,LENGTH substr EXPR,OFFSET 1、从一个字符串中提取一个子字符串并返回它。OFFSET是起始位置,为正时从前面开始数,为负时从后面开始数,数的方向都是从起始位置向后面数。省略时默认值为0。LENGTH 是向后数的长度,直接原创 2012-03-30 13:38:43 · 527 阅读 · 0 评论 -
A Simple Example of Dynamic Programming using perl scripts
动态规划(dynamic programming)是通过组合子问题的解而解决整个问题的。programming是指一种规划,而不是指写计算机代码。分治算法是指将问题划分为一些独立的子问题,递归地求解各子问题,然后合并子问题的解而得到原问题的解。动态规划适用于子问题不是独立的情况,也就是各子问题包括公共的子子问题。在这种情况下,若用分治法则会做许多不必要的工作,即重复地求解公共的子子问题。动态规划算法对每个子子问题只求解一次,将其结果保存在一张表中,从而避免每次遇到各个子问题重新计算答案。动态规划通常应用原创 2014-03-01 12:15:32 · 1764 阅读 · 0 评论