Perl 带有CRUD操作的目录

Perl 带有CRUD操作的目录

Perl是一种通用的、跨平台的编程语言,主要用于文本操作,并用于开发许多软件应用程序,如网络开发、图形用户界面应用等。它比其他编程语言更受欢迎,因为它更快、更强大,而且Perl有很多快捷键,有助于快速编写脚本,从而减少编写时间。
在编程语言中,目录被用来以列表的形式存储数值。目录与文件很相似。就像文件一样,目录也允许对它进行一些操作。这些操作用于修改现有的目录或创建一个新的目录。

可以在一个目录上进行的不同操作有

  1. 创建一个新的目录
  2. 打开一个现有的目录
  3. 读取一个目录的内容
  4. 改变一个目录的路径
  5. 关闭一个目录
  6. 删除一个目录

创建一个 目录

要创建一个目录,可以使用mkdir(PATH, MODE)。这个函数有助于创建一个新的目录,如果用户想检查文件是否已经存在,可以通过 -e 函数来完成。路径由PATH设置,使用MODE函数指定的模式。

示例



#!/usr/bin/perl  
  
# Path of the directory
my directory = 'C:\Users\GeeksForGeeks\Folder\Perl';  
  
# Creating a directory in perl  
mkdir(directory) or die "No directory directory,!";  
print "Directory created \n"; 

输出:

Perl  带有CRUD操作的目录
Perl  带有CRUD操作的目录
Perl  带有CRUD操作的目录

打开一个目录

要在Perl中打开一个目录,需要使用一个简短的函数opendir DIRHANDLE, PATH。这里的PATH是要打开的目录的路径。
例子 :

#!/usr/bin/perl  
  
my directory = 'C:\Users\GeeksForGeeks\Folder';  
opendir (DIR,directory) or die "No directory, !";  
while (file = readdir DIR) 
{  
    print "$file\n";  
}  
closedir DIR;

输出:



Perl  带有CRUD操作的目录

在Scalar和List上下文中读取目录

读取目录是一项常见的任务,因为人们每次都要读取文件中存储的内容来运行代码或理解代码。要读取一个目录,需要使用readdir DIRHANDLE。用户有两种方法可以读取目录,即在列表上下文和标量上下文中。

在列表上下文中,代码返回目录中所有其余的条目,如果目录中的条目是空的,那么在标量上下文中会返回未定义的值,在列表上下文中会返回空列表。



标量上下文:

示例

#!/usr/bin/perl  
use strict; 
use warnings; 
use 5.010; 
  
# Path of the directory
my directory = shift // 'C:\Users\GeeksForGeeks\Folder'; 
  
# Opening the directory
opendir mydh, directory or 
die "Could not open 'directory' for reading '!'\n"; 
  
# Printing content of the directory
while (mycontent = readdir dh) 
{ 
    saycontent; 
} 
  
# Closing the directory
closedir $dh; 

输出:

Perl  带有CRUD操作的目录

列表背景

#!/usr/bin/perl  
use strict;  
use warnings;  
use 5.010;  
  
# Path of the directory
my directory  = shift // 'C:\Users\GeeksForGeeks\Folder';  
  
# Opening the directory
opendir mydh, directory or 
die "Could not open 'directory' for reading '!'\n";  
  
# Reading content of the file
my @content = readdirdh;  
  
# Printing content of the directory
foreach my content (@content) 
{  
    saycontent;  
}  
  
# Closing the directory
closedir $dh;

输出:

Perl  带有CRUD操作的目录

改变一个目录

要改变一个目录,可以使用chdir()函数。chdir()函数与脚本一起调用时,为脚本的其余部分改变目录。如果在一个脚本内调用这个函数,终端上的目录将不会被改变。另一方面,当直接调用一个新的目录路径时,变化同时反映在终端上。
例子1: 当在脚本内调用chdir()时

#!/usr/bin/perl
  
# Module to return 
# current directory path
use Cwd;
  
# Path of new directory
directory = "C:/Users";
  
# Printing the path of current directory
# using cwd function
print "The current directory is ";
print(cwd);
print "\n"; 
  
# Changing the directory using chdir function
chdir(directory) or 
      die "Couldn't go inside directory directory,!";
  
# Printing the path of changed directory
print "Directory has been changed to $directory\n";
print "The current directory is ";
print(cwd);
print "\n"; 

输出

Perl  带有CRUD操作的目录

例2: 当在终端直接调用chdir()时

Perl  带有CRUD操作的目录

关闭一个目录

要关闭一个目录,可以使用closedir DIRHANDLE。这里,DIRHANDLE是目录的句柄,它是用opendir函数打开的。
示例

#!/usr/bin/perl
  
# Directory which is to be opened
dirname = "C:/Users/GeeksForGeeks";
  
# Opening the directory 
# using opendir function
opendir (dir,dirname) || die "Error dirname\n";
  
# Printing content of the directory
# using readdir function
while((filename = readdir(dir))) 
{
    print("$filename\n");
}
  
# Closing the directory using closedir 
closedir(dir);

输出:

Perl  带有CRUD操作的目录

删除一个目录

移除一个目录可以通过使用rmdir函数来完成。这个函数只在FILENAME指定的目录是空的情况下删除该目录,如果成功则返回真,否则返回假。

例子

#!/usr/bin/perl  
directory = "C:/Users/GeeksForGeeks/Folder/Perl";  
  
# This removes perl directory  
rmdir(directory ) or
      die "Couldn't remove directory directory,!";  
        
print "Directory removed \n";  

输出:

Perl  带有CRUD操作的目录
Perl  带有CRUD操作的目录
Perl  带有CRUD操作的目录

Perl 教程
Perl 教程Perl 安装配置第一个 Perl 程序Perl 语法Perl 中的数据类型Perl 变量Perl 局部和全局变量Perl 中的标量Perl use strict和use warningsPerl 列表和数组Perl 中的哈希Perl 运算符Perl 中的条件语句Perl 中的if语句Perl 中的if-else语句perl 中的if-elsif-else语句Perl 中的unless语句Perl 中的unless-else语句Perl 中的 Switch CasePerl 中的 given-when-default 语句Perl 中的循环和循环控制语句Perl 中的 for 循环Perl while 循环Perl do-while 循环Perl foreach 循环Perl 中的until循环Perl 中的子程序Perl 字符串Perl 字符串转义序列Perl BarewordsPerl 比较文件的内容Perl 根据行号显示文件内容Perl 加密和解密Perl 错误处理Perl 格式Perl 函数签名Perl Hello World程序Perl 简介编写Perl代码的模式使用Perl的数字猜测游戏Perl 面向对象的编程(OOPs)Perl 包Perl abs()函数Perl 使用文件全局访问一个目录Perl Regex中的锚点Perl 向文件追加内容Perl 数组 pop() 函数Perl 数组切片Perl 数组 (push、pop、shift、unshift)Perl 数组Perl Regex中的断言Perl atan2() 函数Perl 自动加载(AUTOLOAD)功能Perl 字符串到数字的自动转换或铸造Perl 引用中的自生现象Perl 正则表达式中的回溯操作Perl Perl程序的基本语法Perl 布尔值Perl 调试器的中断点Perl CGI编程Perl chomp()函数Perl chop()函数Perl chr()函数Perl OOP中的类Perl cmp 操作符Perl 比较标量Perl 构造函数和析构函数Perl cos()函数Perl 计算文本中单词的频率Perl 创建Excel文件Perl 数据类型Perl 日期和时间Perl DBI(数据库独立接口)模块集Perl 分支 (if, if-else, Nested-if, if-elsif ladder, unless, unless-else, unless-elsif)Perl defined()函数Perl delete()函数Perl 带有CRUD操作的目录Perl 用调试器显示变量值Perl each() 函数Perl 正则表达式中的'e'修改器Perl 正则表达式中的'ee'修改器Perl OOPs中的封装Perl eq运算符Perl exists() 函数Perl 从脚本中退出Perl exp函数Perl 使用Regex从一个字符串中提取IP地址Perl 文件处理简介Perl 文件输入输出功能Perl 文件锁定Perl 文件测试运算符Perl CGI中的文件上传Perl 查找文件和目录Perl ge运算符Perl CGI中的GET与POSTPerl getc函数Perl 获取一个数组的元素数Perl given-when 语句Perl glob()函数Perl goto 语句Perl grep()函数Perl Regex中的分组和交替法Perl gt运算符Perl 标量和列表背景下的哈希值Perl 哈希操作Perl HashPerl 哈希值Perl hex函数Perl 实现一个队列Perl 实现一个堆栈Perl index() 函数Perl OOPs中的继承性Perl 在Windows、Linux和MacOS中的安装和环境设置Perl int()函数Perl join()函数Perl keys() 函数Perl 循环中的lastPerl lc()函数用于小写转换Perl lcfirst()函数Perl le运算符Perl length()函数Perl 调试器中的行操作命令Perl 列表及其类型Perl 列表的上下文敏感度Perl 列表函数Perl log() 函数Perl 循环 for, foreach, while, do...while, until, 嵌套循环Perl lt运算符Perl 匹配运算符
Perl 基础教程
Perl 简介Perl 环境安装Perl 基础语法Perl 数据类型Perl 变量Perl 标量Perl 数组Perl 哈希Perl 条件语句Perl 循环Perl 运算符Perl 时间日期Perl 子程序(函数)Perl 引用Perl 格式化输出Perl 文件操作Perl 目录操作Perl 错误处理Perl 特殊变量Perl 正则表达式Perl Socket 编程Perl 面向对象Perl 包和模块Perl 进程管理Perl POD 文档Perl while 循环Perl until 循环Perl for 循环Perl foreach 循环Perl do…while 循环Perl 循环嵌套Perl next 语句Perl last 语句Perl continue 语句Perl redo 语句Perl goto 语句Perl IF 语句Perl IF…ELSE 语句Perl IF…ELSIF 语句Perl UNLESS 语句Perl UNLESS…ELSE 语句Perl UNLESS…ELSIF 语句Perl switch 语句
Perl 问答
Perl 和 Ruby 的区别