Perl语言学习笔记 13 目标操作

1、改变目录

chdir "/etc" or die "can‘t chdir to ‘/etc‘!\n";

省略参数会回到用户主目录,与cd效果一样;

2、文件名通配

my @all_files = glob "*";
#不包括以点号开头的文件

my @pm_files = glob "*.pm";

一次匹配多种模式,用空格隔开:my @files = ".* *";
#可以匹配所有的文件,包括以点号开头

3、文件名通配另一种语法

my @files = <*>;
##等效于:my @files = glob "*";

支持变量内插:my $dir="/etc";
my @dir_files=<$dir/* $dir/.*>;

尖括号支持文件句柄和文件名通配,Perl会自行判断选择哪一种操作,如果是标识符,就当作文件读取,否则按文件名通配处理:

4、目录句柄

目录句柄可以打开(opendir)、读取(readdir,读取的为文件名)、关闭(close);

目录句柄是低级操作符,只能返回基本的信息,需要进行额外处理。

5、删除文件

unlink "file1","file2","file3";
##返回成功删除的文件数,无法知道哪个删除失败

不能用来删除目录;

一次删除多个文件:unlink glob "*.o";

删除文件的权限和文件本身的权限无关,取决于文件所在目录的权限,因此某个无法读取、写入、执行的文件也可能被删除;

6、重命名文件

rename "old","new";

实现类似mv的效果:rename "/home/place/file1" "file2"

7、链接与文件

硬链接:

会使文件的链接数增加,只要有一个链接存在,文件就存在。

不能增加目录的链接数,不能跨挂载卷链接。

软链接(符号链接):

不会增加文件的链接数,可以指向不存在的文件

取得符号链接指向的位置:

8、建立及移除目录

建立目录:

0755为权限,无法将字符串直接解释成八进制数字,需用otc函数:

移除目录:

每次只能删除一个目录,并且必须是空目录,如果不是空目录,可以用unlink删除:

$$:当前进程号。

如果目录中还有子目录,则unlink会失败,进而导致rmdir失败。File::Path模块中的 rmtree 提供了比较完整的解决方案。

9、修改权限

chmod 0755,"file1","file2";

10、更改隶属关系

必须以数字形式指定用户标识符和组标识符,如果不知道,可采用如下方式处理:

11、修改时间戳

第三个时间戳 ctime 一定会被设为now,没有函数可以修改它。

Perl语言学习笔记 13 目标操作

时间: 2024-08-08 22:03:07

Perl语言学习笔记 13 目标操作的相关文章

Perl语言学习笔记 day 1

1.Perl Practical Extraction and Report Language:实用摘录与报表语言 2.多行注释 (1) =需要顶格写 = description statement; =cut (2)末尾的description需要顶格写 <<description; print "Hello,world!\n"; description 3.数字: 所有数字在Perl内都以双精度浮点数格式存储; 5**3:5*5*5: 4.字符串: 最短的字符串为空字符

Perl语言学习笔记 6 哈希

1.哈希的键是唯一的,值可以重复! 2.访问哈希元素 $hashname{"$key"};#哈希为大括号,数组为方括号,键为字符串 $family_name{"fred"} = "firstd";#给哈希元素赋值 3.哈希键支持任意表达式 $foo = "na"; $family_name{$foo."me"};#获取$family_name{"name"}对应的值 4.访问整个哈希 %

Perl语言学习笔记 10 其他控制结构

1.unless控制结构 条件为假时执行,与if相反 可以附带else 2.Until控制结构 条件为假时执行,一直执行到条件为真: 3.条件修饰词 效果等同于: 类似的模式: 4.裸块控制结构 { body; body; .... } 有利于为临时变量圈定有效范围 5.elsif子句 6.自增.自减 同c语言 7.for 用法同c语言 8.for与foreach 在perl中,两者等价,优先选择纯正的foreach 9.5种循环块:for.foreach.while.until.裸块 last

Perl语言学习笔记 11 Perl模块

1.模块来源:随Perl发行版本一起打包.从CPAN下载 2.阅读模块文档:perldoc CGI 3.安装模块 makemaker方式: 指定安装目录: Module::build方式: cpan方式: 4.File::basename模块 5.仅选用模块的部分函数 导入引用列表即可 10.不引入任何函数 通过全名的方式使用: 11.File:Spec模块 12.CGI.pm 13.数据库与DBI DBI:数据库接口(Database Interface) 还需安装对应版本的数据库驱动程序DB

Perl语言学习笔记 14 字符串与排序

1.字符串内用index搜索 $where = index($words,$word); ##从words里找到首次出现word的位置,下标从0开始,查找失败则返回-1: 指定开始搜索的地方:$where = index($words,$word,10); ##从10开始往后寻找,包含10 搜索子串最后出现的位置: 限定返回的最大位置:$where = rindex($words,$word,10); ##只搜索下标为10以前的字符. 2.处理子串 substr参数:依次为:字符串.起始下标.要

Perl语言学习笔记 9 正则表达式处理文本

1.替换 s/PATTERN/REPLACE/; #返回是否替换成功的布尔值 可以使用捕获变量,如:s/(\w)/$1/ 匹配失败则不做任何处理 2.定界符 对于没有左右之分的定界符,重复三次即可,如:s///.s### 对于有左右之分的定界符,需使用两对,一对包含模式,一对包含替换字符串,这两对可以不一样,如:s{}{}.s[]{}.s<>[] 3.可选修饰符 /g可进行全局替换,替换所有匹配到的字符串,如:s/ / /g /s:使得 . 匹配所有字符 /i:大小写无关 4.绑定操作符 $f

Perl语言学习笔记 15 智能匹配与give-when结构

1.智能匹配操作符 替代绑定操作符: 在哈希中查找某一个键: 比较两个数组是否完全相同: 查找列表中是否存在某个元素: 智能匹配操作符与顺序无关,~~ 左右元素可以互换 2.智能操作符优先级 3.given语句 相当于c语言的switch语句 4.given可以测试多个条件,在default前用break,否则会导致default一直执行 5.笨拙匹配(正则表达式方式) 6.多个项目的when匹配 可以在语句中间加上其他语句: Perl语言学习笔记 15 智能匹配与give-when结构,布布扣

Perl语言学习笔记 day 2

1.在Perl中,子程序名与变量名属于不同的命名空间,可以使用同一个名字分别命名子程序和变量,但不建议这样使用. 2.子程序的定义是全局的,同名的子程序后边的会覆盖掉前边的定义. 3.定义子程序 sub subProgram{ #body } 4.调用子程序 &subProgram 5.所有的子程序都有返回值,默认最后一行的运算结果为返回值. 6.子程序未定义参数时,传递的参数默认传给"@_",可以通过$_[0].$_[1].....访问: 7.在子程序中创建私有变量 my($

Perl 学习笔记-目标操作

1.在目录树中移动. 程序运行时会以当前工作目录作为相对路径的起点, 可以使用  chdir 操作符改变当前目录: chdir "/etc" or die "Can't chdir to /etc:$!"; #因为这是一个相对操作系统的调用, 所以错误信息会返回到 $! 中. 由Perl程序启动的所有进程都会继承Perl程序的工作目录. 但对于启动Perl的进程,它的工作目录不会随Perl工作目录的改变而改变, 所以无法写出任何Perl程序来代替Shell里的cd命