-2
#!/usr/bin/perl

use strict;
use warnings;

my $file;
my @files;
my $parse;
my @files = <*>;
foreach $file(@files)
 chomp ($file);
{
 $parse = system qq(paste <(cut -f1,2,13 $file) <(cut -f12 $file));
}

"my" variable @files masks earlier declaration in same scope at Rast_seq.pl line 11.
sh: 1: Syntax error: "(" unexpected
sh: 1: Syntax error: "(" unexpected
sh: 1: Syntax error: "(" unexpected
sh: 1: Syntax error: "(" unexpected
sh: 1: Syntax error: "(" unexpected
sh: 1: Syntax error: "(" unexpected

このエラーの修正を手伝ってください。

4

2 に答える 2

1

ここでのいくつかの問題:

  • @files配列を2回宣言しています。
  • chomp ($file);forブロックの外側です。
  • chomp ($file);この状況で<*>は役に立ちません。ファイル名のリストを返します-行を読んでいません(読みやすいので使用することをお勧めしますglob '*';)。
  • system関数は、これを使用してコマンドを実行します-見た目は-構文/bin/shをサポートしていません<(...)
于 2013-03-18T11:13:51.303 に答える
1

左中かっこを{の前に移動しchomp;
、最初のものを削除しmy @files;
て区切り文字を変更しますqq

my $file;
my $parse;
my @files = <*>;

foreach $file(@files) {
    chomp ($file);
    $parse = system qq#paste <(cut -f1,2,13 $file) <(cut -f12 $file)#;
}
于 2013-03-18T10:55:11.907 に答える