パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

[質問] Perlのファイル検査 -f とスペースの入ったファイル名」記事へのコメント

  • CentOS5環境
    $ echo "test" > test
    $ echo "file" > file
    $ echo "test_file" > test\ file
    $ cat test\ file
    test_file
    $ cat test.pl
    #!/usr/bin/perl

    $filename="test file";
    if (-f $filename ){
                    open(FILE,$filename);
                    $str=;
                    print $str;
                    close(FILE);
    }
    if (-f "$filename"){
                    open(FILE,"$filename");
                    $str=;
                    print $str;
                    close(FILE);
    }
    $ ls -1
    file
    test
    test file
    test.pl
    $ perl test.pl
    test_file
    test_file
    $

    • by Anonymous Coward

      > $str=;
      ここは$str=<FILE>;と書こうとしたのでしょうか。
      それはともかく、Windows XP上のStrawberry Perlでもosakanataroさんと同じ結果になりました。testとfileがあって"test file"がないときは何も表示されない(-f $fileで正しくファイルなしと判定される)し、testとfileがなくて"test file"があるときはtest_fileが2行表示される(-f $fileで正しくファイルありと判定される)ことも確認しました。
      どんな腐った環境だと「二つのファイルがあるかどうか検査しようとする」のか、どうやってそのことを確認したのかむしろこっちが質問したいですね。

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

処理中...