⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inst

📁 UNIX下perl实现代码
💻
字号:
#!/usr/local/bin/perl -wuse strict;use IO::File;use ExtUtils::Packlist;use ExtUtils::Installed;use vars qw($Inst @Modules);################################################################################sub do_module($){my ($module) = @_;my $help = <<EOF;Available commands are:   f [all|prog|doc]   - List installed files of a given type   d [all|prog|doc]   - List the directories used by a module   v                  - Validate the .packlist - check for missing files   t <tarfile>        - Create a tar archive of the module   q                  - Quit the moduleEOFprint($help);while (1)   {   print("$module cmd? ");   my $reply = <STDIN>; chomp($reply);   CASE:      {      $reply =~ /^f\s*/ and do         {         my $class = (split(' ', $reply))[1];         $class = 'all' if (! $class);         my @files;         if (eval { @files = $Inst->files($module, $class); })            {            print("$class files in $module are:\n   ",                  join("\n   ", @files), "\n");            last CASE;            }         else            { print($@); }         };      $reply =~ /^d\s*/ and do         {         my $class = (split(' ', $reply))[1];         $class = 'all' if (! $class);         my @dirs;         if (eval { @dirs = $Inst->directories($module, $class); })            {            print("$class directories in $module are:\n   ",                  join("\n   ", @dirs), "\n");            last CASE;            }         else            { print($@); }         };      $reply =~ /^t\s*/ and do         {         my $file = (split(' ', $reply))[1];         my $tmp = "/tmp/inst.$$";         if (my $fh = IO::File->new($tmp, "w"))            {            $fh->print(join("\n", $Inst->files($module)));            $fh->close();            system("tar cvf $file -I $tmp");            unlink($tmp);            last CASE;            }         else { print("Can't open $file: $!\n"); }         last CASE;         };      $reply eq 'v' and do         {         if (my @missing = $Inst->validate($module))            {            print("Files missing from $module are:\n   ",                  join("\n   ", @missing), "\n");            }         else            {            print("$module has no missing files\n");            }         last CASE;         };      $reply eq 'q' and do         {         return;         };      # Default         print($help);      }   }}################################################################################sub toplevel(){my $help = <<EOF;Available commands are:   l            - List all installed modules   m <module>   - Select a module   q            - Quit the programEOFprint($help);while (1)   {   print("cmd? ");   my $reply = <STDIN>; chomp($reply);   CASE:      {      $reply eq 'l' and do         {         print("Installed modules are:\n   ", join("\n   ", @Modules), "\n");         last CASE;         };      $reply =~ /^m\s+/ and do         {         do_module((split(' ', $reply))[1]);         last CASE;         };      $reply eq 'q' and do         {         exit(0);         };      # Default         print($help);      }   }}################################################################################$Inst = ExtUtils::Installed->new();@Modules = $Inst->modules();toplevel();################################################################################

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -