美文网首页生物信息学习
perl 编程技巧(二)

perl 编程技巧(二)

作者: 正踪大米饭儿 | 来源:发表于2017-05-23 18:29 被阅读49次

今天写程序发现一个以前混淆的概念:

my $time = q/`date +%Y-%m-%d' '%H:%M:%S`/;

这个用法在写程序中一般是比较常用的,尤其是在写一些输出的日志信息时;

但是在这里我错误的使用了 qw 导致我的程序报错了:

Useless use of a constant (`date) in void context at script.pl line 6.
Useless use of a constant (+%Y-%m-%d') in void context at script.pl line 6.

检查后才发现错误的原因。

这篇笔记就简单分析一下 q, qq, qw, qx 这四者之间的用法与区别。

1. q

perl 中一个字母 q 相当于一对单引号 ' ' 其引号内部的内容中的转义符不起作用;
使用 q 加一对成对的符号表示,如:
q//, q{}, q[], q() 等表示;

2. qq

qq 相当于双引号 " ", 其内部引的内容中转义符起作用,例如\t表示一个制表符;
使用方式同 q 相同, 用 qq 加一对 成对的符号表示,如:
qq//, qq(), qq{}, qq[] 等。

3. qw

qw 相当于 ( '' ..'', '..')在每一个字符串添加引号;
qq 和 qw 区别在于 qq 会将数组整体赋给一个变量,而 qw 则会将数组中的每一个元素单独赋给一个变量。

看示例:

#!/usr/bin/perl -w
use strict;

my $out1 = qq/a b c d/;
my @out1 = qq/a b c d/;

my $out2 = qw/a b c d/;
my @out2 = qw/a b c d/;

print "$out1\n@out1\n$out2\n@out2\n";

编译检查结果如下:

$perl -c script.pl
Useless use of a constant (a) in void context at script.pl line 7.
Useless use of a constant (b) in void context at script.pl line 7.
Useless use of a constant (c) in void context at script.pl line 7.
script syntax OK

在检查语法的时候会有提示的信息。

输出结果如下:

$perl script.pl
$ perl fetch_mature_hairpin.pl 
Useless use of a constant (a) in void context at script.pl line 7.
Useless use of a constant (b) in void context at script.pl line 7.
Useless use of a constant (c) in void context at script.pl line 7.
a b c d
a b c d
d
a b c d

换一种赋值方式:

#!/usr/bin/perl -w
use strict;

my $out1 = qq/a b c d/;
my @out1 = qq/a b c d/;

my ( $a, $b, $c, $d )  = qw/a b c d/;
my @out2 = qw/a b c d/;

print "$out1\n@out1\n@out2\n";
print "$a,$b,$c,$d\n";

输出结果:

$ perl script.pl
a b c d
a b c d
a b c d
a,b,c,d

4. qx

qx 的作用类似 反引号 `` 或者system
看示例:

# perl 单行命令
$ perl -e '$a=qx/date/;print $a'
$ perl -e '$a=`date`;print $a'
$ perl -e '$a=system("date");print $a'

这三条命令输出的结果都一样:

# 打印当前的系统时间
Tue May 23 18:02:44 CST 2017

添加小刘哥微信号( Alipe_2013 )交流:

小刘哥

或者关注小刘哥公众号,不定期推送文章分享学习心得:

小刘哥公众号

相关文章

  • perl 编程技巧(二)

    今天写程序发现一个以前混淆的概念: 这个用法在写程序中一般是比较常用的,尤其是在写一些输出的日志信息时; 但是在这...

  • perl 编程技巧

    Perl 是目前我最熟悉的工作语言,perl中有很多特别实用的小技巧下面我就一一罗列一下: -w-w 启用警告,这...

  • 编程语言

    一、编程语言分类 二、解释型编程语言 Perl Perl 是一种支持动态编程的高级解释型编程语言。它是由 Larr...

  • CentOS7下安装Perl编程环境

    因为工作的关系,需要改用Perl语言进行编程,下面以CentOS7为例安装Perl编程环境。 安装Perl 一个命...

  • Perl6 的特别之处

    Perl6 是 Perl 语言社区开发的新的编程语言。它和 Perl5 不兼容。 所有的编程语言都会经历一个成长过...

  • 第二天 - Perl 6: 符号, 变量和容器

    第二天-Perl 6: 符号, 变量和容器 对容器的基本理解对于在 Perl 6 中进行愉快的编程是至关重要的。它...

  • perl 语言编程

    曾经的用过的语言 perl 是我写过第一个超过一百行代码的程序设计语言。当时很多人说perl 快死了,我也一直受这...

  • Perl语言编程

    链接:https://pan.baidu.com/s/1r9Jdxj2jit6vtTfnEHsJCA 提取码:i0...

  • 一文了解Perl语言

    我在公众号发过很多编程语言的学习笔记,但是一直没有发Perl语言的编程教程。我大学的时候,学过一段时间的Perl语...

  • 生物信息学软件安装与管理

    软件安装分成以下几类:针对不同平台(windows、Linux、Mac)编译好的二进制程序;各种编程语言(perl...

网友评论

    本文标题:perl 编程技巧(二)

    本文链接:https://www.haomeiwen.com/subject/hblgxxtx.html