84、编写程序,提示用户输入目录名(默认是用户主目录),然后切换到该目录。
以下是一个使用 Perl 编写的程序,用于提示用户输入目录名,若用户未输入则使用用户主目录,然后切换到该目录:
#!/usr/bin/perl
use strict;
use warnings;
use File::HomeDir;
# 获取用户主目录
my $home_dir = File::HomeDir->my_home;
# 提示用户输入目录名
print "请输入目录名(默认是用户主目录):";
my $input_dir = <STDIN>;
chomp $input_dir;
# 如果用户未输入,使用主目录
my $target_dir = $input_dir ? $input_dir : $home_dir;
# 尝试切换到目标目录
if (-d $target_dir) {
chdir $target_dir or die "无法切换到目录 $target_dir: $!";
print "已成功切换到目录:$target_dir\n";
} else {
print "指定的目录 $target_dir 不存在。\n";
}
代码解释:
- 引入必要的模块 :
File::HomeDir用于获取用户主目录。 - 获取用户主目录 :使用
File::HomeDir->my_home获取用户主目录。 - 提示用户输入目录名 :使用
print提示用户输入目录名,使用<STDIN>读取用户输入,并使用chomp去除换行符。 - 确定目标目录 :如果用户输入了目录名,则使用该目录名;否则使用用户主目录。
- 切换到目标目录 :使用
chdir函数尝试切换到目标目录,如果切换失败则使用die输出错误信息。如果目录不存在,则输出相应提示。
85、编写一个程序,提示用户输入一个目录(默认为用户主目录),然后显示该目录下的所有文件和目录名。
以下是一个使用 Perl 语言实现的程序,它会提示用户输入一个目录,如果用户没有输入,则使用用户主目录,然后显示该目录下的所有文件和目录名:
#!/usr/bin/perl
use strict;
use warnings;
use File::HomeDir;
# 获取用户主目录
my $default_dir = File::HomeDir->my_home;
# 提示用户输入目录
print "请输入一个目录(默认为 $default_dir):";
my $input = <STDIN>;
chomp $input;
# 确定要使用的目录
my $target_dir = $input ? $input : $default_dir;
# 检查目录是否存在
if (-d $target_dir) {
# 打开目录
opendir(my $dh, $target_dir) or die "无法打开目录 $target_dir: $!";
# 读取目录内容
my @entries = readdir($dh);
# 关闭目录
closedir($dh);
# 显示所有文件和目录名
foreach my $entry (@entries) {
next if $entry eq '.' or $entry eq '..';
print "$entry\n";
}
} else {
print "$target_dir 不是一个有效的目录。\n";
}
代码说明:
- 获取用户主目录 :使用
File::HomeDir->my_home获取用户主目录。 - 提示用户输入目录 :使用
print提示用户输入目录,并使用<STDIN>读取用户输入。 - 确定要使用的目录 :如果用户输入了目录,则使用用户输入的目录;否则,使用用户主目录。
- 检查目录是否存在 :使用
-d检查目录是否存在。 - 打开目录并读取内容 :使用
opendir打开目录,使用readdir读取目录内容,最后使用closedir关闭目录。 - 显示所有文件和目录名 :遍历目录内容,跳过
.和..,并使用print显示每个文件和目录名。 - 错误处理 :如果目录不存在或无法打开,程序会输出相应的错误信息。
86、编写一个程序,提示用户输入一个目录(默认为用户主目录),然后显示该目录下的所有文件和目录名,包括以点开头的隐藏文件。
#!/usr/bin/perl
use strict;
use warnings;
use File::HomeDir;
# 获取用户主目录
my $default_dir = File::HomeDir->my_home;
# 提示用户输入目录
print "请输入一个目录(默认为 $default_dir):";
my $input = <STDIN>;
chomp $input;
# 如果用户没有输入,则使用默认目录
my $target_dir = $input ? $input : $default_dir;
# 检查目录是否存在
if (-d $target_dir) {
# 打开目录
opendir(my $dh, $target_dir) or die "无法打开目录 $target_dir: $!";
# 读取目录中的所有条目
my @entries = readdir($dh);
# 关闭目录
closedir($dh);
# 显示所有条目
foreach my $entry (@entries) {
prin


6176

被折叠的 条评论
为什么被折叠?



