【问题标题】:Extract tar.gz file using Perl script使用 Perl 脚本提取 tar.gz 文件
【发布时间】:2014-06-09 05:40:22
【问题描述】:

我正在做一个关于提取指定位置的 tar.gz 文件的 Perl 脚本,但是当我运行我的这段代码时。

  use strict;
  use warnings;

  use Archive::Tar;
  use File::Spec::Functions qw(catdir);

  my $input = "sample.tar.gz";
  my $tar   = Archive::Tar->new($input);
  my @files = $tar->list_files;

  my $output_dir = '/var';
  foreach my $file (@files) {

my $extracted_file = catdir($output_dir, $file);
$tar->extract_file($file, $extracted_file);

if ($file =~ /\.rpm\z/ /\.sh\z/ /\.gz\z/) {
    open my $fh, '<', $extracted_file or do { warn "$0: Can't open file $file: $!"; next };
    while (defined(my $line = <$fh>)) {
         do something with $line
                 }
                         close $fh;
                             }
                             }

我的脚本的文件名是“extract.pl”,所以当我运行这个脚本时。我收到了这个错误

 ./extract.pl: line 1: use: command not found

 ./extract.pl: line 2: use: command not found

 ./extract.pl: line 4: use: command not found

 ./extract.pl: line 5: syntax error near unexpected token `('

 ./extract.pl: line 5: `use File::Spec::Functions qw(catdir);'

谁能帮帮我?

【问题讨论】:

  • 感谢您的编辑.. :)

标签: linux perl unix


【解决方案1】:

你有两个选择;一)脚本的第一行应该是(首先搜索 PATH)#!/usr/bin/env perl 或直接到您的 perl 安装路径(我的是在 #!/usr/bin/perl)。

最后,第二个)通过使用 perl 调用您的脚本

perl extract.pl

【讨论】:

    【解决方案2】:

    一个shebang ist 丢失,告诉你的脚本应该使用哪个解释器。

    请补充:

    #!/bin/perl

    在第一行。

    【讨论】:

      【解决方案3】:

      请在第一行使用 perl 解释器

      #!/usr/bin/perl
      

      或任何安装 perl 的路径

      或者执行脚本为

      perl extract.pl
      

      您的脚本正在您的 default shell 中被解释,我认为这是 bash

      所以它无法识别use,因为 bash 或任何 shell 中没有这样的关键字/命令。 因此错误

      use command not found
      

      【讨论】:

      • 我已经尝试添加shebang,但仍然有错误。剩下的错误是 ./extract.pl: line 5: `use File::Spec::Functions qw(catdir);'.
      • @user3534255 尝试在 ( ) 前后放置空格
      • 您确定错误信息与第 5 行的内容相同吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      • 2011-03-29
      相关资源
      最近更新 更多