如何通过perl脚本以交互方式访问Linux子目录?

时间:2015-01-22 09:23:35

标签: linux perl

以下是我的示例代码:

#!/usr/bin/perl
use strict;

print "Enter the name of the input file and its relevant path:\n";
my $file1 = <STDIN>;
chomp $file1;

open (DOC,"$file1") || die "Could not open $file1, $!";

是否有更好的方式以交互方式指定文件名及其路径?

一种类似于Linux命令行界面的用户可以通过以下方式:

  • 使用标签,自动完成路径?
  • Ctrl + D 查看当前目录的内容?

1 个答案:

答案 0 :(得分:2)

您可以使用perl模块Term::Complete来允许用户自动完成路径 Term :: Complete需要一个包含自动完成单词的数组,因此您需要读取当前目录的内容并将其保存到数组中。
例如:

#!/usr/bin/perl

use Term::Complete;
use File::Find qw(finddepth);

finddepth(sub {
        return if ($_ eq '.' || $_ eq '..');
        push @files, $File::Find::name;
}, '/');
$input = Complete('File: ', \@files);