博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Perl新接触的小命令
阅读量:5093 次
发布时间:2019-06-13

本文共 2371 字,大约阅读时间需要 7 分钟。

0,glob()函数

my @infile = glob("$indir/*.txt.gz");  #获得指定路径下的文件名,并形成列表,如果$indir为空,则自动匹配当前目录下的指定文件名

1,sprintf()函数

my $rate_CG = sprintf("%.2f",$methy_CG*100/($methy_CG+$unmethy_CG));         #http://www.360doc.com/content/14/1229/14/12090552_436620848.shtml

2,判断文件或目录的各种属性(转载:http://blog.sina.com.cn/s/blog_5e425dd601019317.html)

示例:

if(-e "File-Name")

{
  print "TRUE\n";
}
else
{
  print "FALSE\n";
}

 检测选项                 含义

-r              文件或目录对此(有效的)用户(effective user)或组是可读的

-w             文件或目录对此(有效的)用户或组是可写的
-x             文件或目录对此(有效的)用户或组是可执行的
-o             文件或目录由本(有效的)用户所有
-R             文件或目录对此用户(real user)或组是可读的
-W            文件或目录对此用户或组是可写的
-X             文件或目录对此用户或组是可执行的
-O             文件或目录由本用户所有
-e              文件或目录名存在
-z              文件存在,大小为0(目录恒为false)
-s              文件或目录存在,大小大于0(值为文件的大小,单位:字节)
-f               为普通文本
-d              为目录
-l               为符号链接
-S              为socket
-p              为管道(Entry is a named pipe(a“fifo”))
-b              为block-special 文件(如挂载磁盘)
-c              为character-special 文件(如I/O 设备)
-u              setuid 的文件或目录
-g              setgid 的文件或目录
-k              File or directory has the sticky bit set
-t              文件句柄为TTY(系统函数isatty()的返回结果;不能对文件名使用这个测试)
-T             文件有些像“文本”文件
-B             文件有些像“二进制”文件
-M             修改的时间(单位:天)
-A             访问的时间(单位:天)
-C             索引节点修改时间(单位:天)

3,操作Perl数组: shift, unshift, push, pop(转载:https://cn.perlmaven.com/manipulating-perl-arrays)

和可以直接访问单独的数组元素一样,Perl也提供了很多其它有趣的方式来操作数组。特别是,有些函数可以很方便有效的将Perl的数组作为栈或者队列来使用。

pop

pop函数会删除并返回数组的最后一个元素。

在第一个例子(3元素数组)中可以看到,pop函数删除最后一个元素(下标最大)并返回它。

 

my @names = ('Foo', 'Bar', 'Baz');my $last_one = pop @names;print "$last_one\n";  # Bazprint "@names\n";     # Foo Bar

 如果原数组为空,pop函数会返回。

push

push 函数可以在数组的后面添加一个或多个值。(当然,也可以添加0个值,但是没有用,不是么?)

 

my @names = ('Foo', 'Bar');push @names, 'Moo';print "@names\n";     # Foo Bar Moomy @others = ('Darth', 'Vader');push @names, @others;print "@names\n";     # Foo Bar Moo Darth Vader

在这个例子中我们最初有个两元素数组。之后我们向数组尾部push了一个标量,数组扩展成了3元素数组。

第二次调用push,我们push了@others数组的内容到@names尾部,把它扩充成5元素数组。

shift

shift函数会让整个数组左移。设想一下,数组从左边开始。数组的第一个元素会从数组“掉下来”,并成为函数的返回值(如果数组为空,shift 会返回 。)

这样操作之后,数组会减少一个元素。

 

my @names = ('Foo', 'Bar', 'Moo');my $first = shift @names;print "$first\n";     # Fooprint "@names\n";     # Bar Moo

这和pop很像,但是它作用于数组索引的小端。

unshift

这是shift的反函数。unshift 会传入一个或多个值(或者0个) 并把它放在数组的开头,将其他元素右移动。

你可以向它传单个的标量,那么这个值会成为数组的第一个元素。或者像第二个例子那样,你可以传递第二个数组,那么第二个数组的所有元素(我们例中的@others)会复制到主数组的开头(例中@names),并将其他元素向高索引方向移动。

 

my @names = ('Foo', 'Bar');unshift @names, 'Moo';print "@names\n";     # Moo Foo Barmy @others = ('Darth', 'Vader');unshift @names, @others;print "@names\n";     # Darth Vader Moo Foo Bar

转载于:https://www.cnblogs.com/Formulate0303/p/7239558.html

你可能感兴趣的文章
osg ifc ifccolumn
查看>>
C++ STL partial_sort
查看>>
WebDriverExtensionsByC#
查看>>
我眼中的技术地图
查看>>
lc 145. Binary Tree Postorder Traversal
查看>>
sublime 配置java运行环境
查看>>
在centos上开关tomcat
查看>>
无人值守安装linux系统
查看>>
jQuery应用 代码片段
查看>>
黑马程序员——2 注释
查看>>
转化课-计算机基础及上网过程
查看>>
android dialog使用自定义布局 设置窗体大小位置
查看>>
ionic2+ 基础
查看>>
互联网模式下我们更加应该“专注”
查看>>
myeclipse集成jdk、tomcat8、maven、svn
查看>>
查询消除重复行
查看>>
Win 10 文件浏览器无法打开
查看>>
[leetcode]Minimum Path Sum
查看>>
内存管理 浅析 内存管理/内存优化技巧
查看>>
【BZOJ 5222】[Lydsy2017省队十连测]怪题
查看>>