perl qw以空格为分隔符问题的解决方法

所属分类: 脚本专栏 / perl 阅读数: 1604
收藏 0 赞 0 分享

perl中创建数组时,可以使用到qw。

但有一个问题,如果要创建有20个人名组成的数组,并且每个人的名字是这种形式的"Join smith" "Harry Potter"也就是每一个名字既包含姓也包含名。此时,qw就不起作用了。因为qw是用空格作为分隔符。

下面提供一些替代的解决方案,供大家参考。

方案一:

用最原始的方案,也就是双引号,来进行数组的创建

复制代码 代码如下:

@names=("Join smith","Harry Potter"); 
print @names[0];

结果如下:
F:\>perl\b.pl 
Join smith 
F:\>

方案二:

我们可以进行一下简单的变通,qw只能以空格为分隔符,那我们把人名中间的空格用其他的字符进行替代。
@names=qw/Join_smith Harry_Potter/; 
#然后当我们输出的时候我们再把中间的连接符进行替换 

复制代码 代码如下:

@names[0]=~s/_/ /g; 
print @names[0];

结果如下;
F:\>perl\b.pl 
Join smith 
F:\>

方案三:

利用split函数进行创建。

复制代码 代码如下:

#首先我们定义一个变量 
$names="Join smith,Harry potter", 

#这里利用split函数,这里split//两个斜线之间就是你要分割的地方,本例中以逗号为分割界限 
my @names=split/,/,$names; 
rint @names[0];

结果如下:
F:\>perl\b.pl 
Join smith 
F:\>

更多精彩内容其他人还在看

perl 指定长度并生成一个随机的DNA序列的脚本代码

perl 指定长度并生成一个随机的DNA序列的代码,有需要的朋友可以参考下
收藏 0 赞 0 分享

perl生成特定碱基比例的随机序列的代码

怎么用perl程序,随机生成一条序列,使ACGT四种碱基的含量分别为0.3,0.3,0.2,0.2!
收藏 0 赞 0 分享

学习perl的unless控制结构

在perl的if控制结构中,只有当条件表达式为真时才执行某块代码。如果想让程序块在条件为假时才执行,此时可以把if改成unless
收藏 0 赞 0 分享

有关perl正则表达式的一些杂项

有关perl正则表达式的一些杂项,有需要的朋友可以参考下
收藏 0 赞 0 分享

perl中heredoc使用说明

在成块打印文本的时候特别有用,需要的朋友可以参考下
收藏 0 赞 0 分享

Perl使用chdir的实例代码

Perl使用chdir的例子,供朋友们参考学习
收藏 0 赞 0 分享

perl特殊符号及默认的内部变量

perl特殊符号及默认的内部变量,有需要的朋友不妨参考下
收藏 0 赞 0 分享

perl中my与our的区别介绍

our 和 my 一样,都是对变量的声明,不过 our 声明的是包全局变量,而 my 声明的是词法变量
收藏 0 赞 0 分享

在vim中添加perl注释时无法对齐问题的解决方法

在使用vim编辑perl脚本时,每当输入#号时,#号都会跑到行首问题,需要的朋友可以参考下
收藏 0 赞 0 分享

perl 文件操作总结

perl 文件操作总结,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多