Perl 语法 - 高级特性

Posted Digital-LI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Perl 语法 - 高级特性相关的知识,希望对你有一定的参考价值。

总结:

q()、qq()、qw()、qx(),分别是单引号、双引号、创建字符串列表 和 捕获命令输出。

 

第9学时 其他函数和运算符

一件事情可以使用多种方法完成。

本节主要内容:

  1. 如何对标量进行简单的字符串搜索?(之前用正则表达式)
  2. 如何进行字符替换?
  3. 如何使用print函数
  4. 如何将数组用作堆栈和队列

 

第10学时 文件与目录

  • 获得目录列表
  • 创建和删除文件
  • 创建和删除目录
  • 获取文件信息

如何获得目录列表?(打开目录 读取目录) 此步的局限性:只能查看指定目录下的文件目录列表信息

打开文件 和 打开目录 不太一样,打开目录 是为了获得目录里的信息列表,而不能写入或修改。

# 打开目录
opendir(DIR, ./) or die $!;
# 以标量形式读取目录
while(readdir(DIR)){
    print $_."\n";
}
# 以数组形式读取目录
@dir = readdir(DIR);
foreach (@dir){
    print $_."\n";
}
# 目录句柄用完之后必须关闭
close(DIR);
# 通常会用grep过滤掉(.)和(..)目录
@files = grep(!/^\.\.?$/, readdir(DIR));

 

如何浏览目录、切换目录、创建目录、删除目录?

# 使用Cwd包,获取当前工作目录
use Cwd;
print cwd, "\n";
chdir ../ or warn $!; # 改变当前目录
print getcwd;
print "DIrectory to create?";
my $newdir = <STDIN>;
chomp $newdir;
mkdir($newdir, 0755) or die $!;   # 创建目录,权限为755
rmdir($newdir) or die $!;   #删除目录

如何删除文件?给文件改名?

unlink <*.bat>;  #删除匹配文件
$erased = unlink old.exe, a.out, personal.txt;  #删除列表文件,并返回已删除数量
unlink @badfiles;  #删除列表内文件
unlink;  #删除$_内文件
if (!rename "myfile.txt", "archive.txt"){
    warn $!;
}

 

第11学时 系统之间的互操作性

system()函数

捕获输出

 

 

 

 

 

 

第12学时 使用P e r l 的命令行工具

 

 

 

 

 

 

 

第13学时 引用与结构

 

 

 

 

 

 

第14学时 使用模块

 

 

 

 

 

 

第15学时 了解程序的运行性能

 

 

 

 

 

第16学时 P e r l 语言开发界

 

 

 

 

 

 

 

其他:

use Cwd abs_path;   #获取指定文件和目录的绝对地址
use warnings;
$myfile= "fastq_R1.txt";
$mydir="./1";
print(abs_path($myfile)."\n");  #使用abs_path函数
print(abs_path($0)."\n");
print(abs_path($mydir)."\n");

以下是语法在只读模式打开file.txt的。这里小于< signe 指示,文件必须以只读模式运行结束

open(DATA, "<file.txt");
 
 
 
 
疑问:
1.qq()连接起来的列表似乎只有一个元素,因为用scalar()和join()连接起来都只发现一个元素???
 

以上是关于Perl 语法 - 高级特性的主要内容,如果未能解决你的问题,请参考以下文章

3-Perl 基础语法

MyBatis高级特性

Perl 5.20.0 发布

yield from语法的高级特性

如何有条件地将 C 代码片段编译到我的 Perl 模块?

Perl 基础语法