2017-01-13 4 views
-5
#!/db/pub/infra/CPAN/perl/5.8.8/bin/perl 

use lib '/db/pub/eq/arina/global/perl/lib'; 
use lib '/db/pub/infra/CPAN/perl/5.8.8/lib/site_perl/5.8.8'; 

use DBI; 
use strict; 

sub main { 

    my $dir = "/data/dbxpc2_archive/BookingManager/2017-01-12/data/PC1/millennium.ignore.ftp.noencrypt.DB_USD"; 

    my @files = glob "${DIR}/*.csv"; 

    print @files; 
} 

main(); 
+8

を用いて射出バグを修正してパスが正しく処理されません。 – mob

+0

'use strict;'と 'use warnings;' – stevieb

+1

@stevieb:* "グローバルシンボル$ DIRは明示的なパッケージ名を必要とします" *は、少なくとも厳密な 'vars'を使用していることを示します。 – Borodin

答えて

2

あなたが宣言したことはありません($DIR)の変数を使用しているので、あなたがエラーを取得します。あなたは、使用しようとしているもののように見える$dirという名前の変数を宣言しています。

glob "${dir}/*.csv" 
glob "$dir/*.csv" 
glob $dir."/*.csv" 

あなたのコードはなど、スペース、*?、 `$ DIR`は` $のdir`とは異なる変数であるため

glob "\Q${dir}\E/*.csv" 
glob "\Q$dir\E/*.csv" 
glob quotemeta($dir)."/*.csv" 
関連する問題