Perl 带有CRUD操作的目录
Perl是一种通用的、跨平台的编程语言,主要用于文本操作,并用于开发许多软件应用程序,如网络开发、图形用户界面应用等。它比其他编程语言更受欢迎,因为它更快、更强大,而且Perl有很多快捷键,有助于快速编写脚本,从而减少编写时间。
在编程语言中,目录被用来以列表的形式存储数值。目录与文件很相似。就像文件一样,目录也允许对它进行一些操作。这些操作用于修改现有的目录或创建一个新的目录。
可以在一个目录上进行的不同操作有
- 创建一个新的目录
- 打开一个现有的目录
- 读取一个目录的内容
- 改变一个目录的路径
- 关闭一个目录
- 删除一个目录
创建一个 目录
要创建一个目录,可以使用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中打开一个目录,需要使用一个简短的函数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;
输出:
在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;
输出:
列表背景
#!/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;
输出:
改变一个目录
要改变一个目录,可以使用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";
输出
例2: 当在终端直接调用chdir()时
关闭一个目录
要关闭一个目录,可以使用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);
输出:
删除一个目录
移除一个目录可以通过使用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";
输出: