人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

dataディレクトリにある。CH1******, CH2*******,CH3******....CH16******というデータファイルのファイル名を
連続して表示させるperlプログラムを作成したのですが、うまく動きません。どこが悪いのでしょうか。
ファイル名の指定は、ワイルドカードを使っています。

$dpass = 'c:\data\CH';
$fend = '_*.log';

for ($x = 1; $x <= 16; $x++){
$p_dat = $dpass.$x.$fend;
$filename = glob $p_dat;
print "$filename \n";
}


●質問者: youkan_ni_ocha
●カテゴリ:コンピュータ 学習・教育
✍キーワード:Perl print ディレクトリ データ ファイル
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● いわわ
●35ポイント

配列が返るから

$filename = glob $p_dat;
print "$filename \n";

@filename = glob $p_dat;
print "@filename \n";

で一応動くと思います

URLはダミーです

http://www.ipa.go.jp/security/awareness/vendor/programming/a04_0...

◎質問者からの返答

動きました。言われてみると確かに、、、ありがとうございます。


2 ● nao_38
●35ポイント

http://perldoc.perl.org/functions/glob.html

#すごい適当なコードです。

use strict;

my ($dpass,$fend) = ('c:\data\CH','_*.log');

for (my $x = 1; $x <= 16; $x++){

my $p_dat = $dpass.$x.$fend;

#print "try:".$p_dat."\n";

my $isPresent = glob ($p_dat);

if(defined($isPresent)){

print "found:".$isPresent."\n";

}

}


3 ● cross99
●10ポイント

先にファイルの一覧を取得してから処理してはいかが

my @filename = grep { /CH\d+_/ } glob './data/CH*.log';

for my $file (@filename) {

print "$file\n";

}


http://q.hatena.ne.jp/

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ