为什么Perl不能find我在ClearCase中的文件?

这段Perl告诉我,ClearCase中的文件不存在,

$x = "PATH/TO/FILE" if (-e $x) { print "This file exists on the file system"; } else { print "I can't see this file"; } 

有没有人见过这个?

一些文件返回正常。 让我难住。

Clearcase视图是dynamic的,托pipe在unix上。

这段代码返回一个文件存在,而另一个不在同一个视图中的同一个文件夹中。

Clearcase将其“文件”存储为目录

Aric试图告诉你的是,ClearCase使用扩展path名 ,“扩展”是因为它扩展了文件名和版本path

因此,在dynamic视图中,可以描述任何文件以显示其版本控制path:

 $ ct ls myFile $ ct descr -l myFile myFile@@/main/3 

在dynamic视图中,您可以实际浏览文件的版本(因此“作为目录的文件”)部分

 $ cd myFile@@ $ ls main $ cd main $ ls 3 $ cat 3 ... // content of third version of myFile 

现在,如果在这里使用了ClearQuest(问题跟踪系统),它将引用ClearCase的活动(更改文件集)。

但是对于ClearCase,在dynamic视图(实际上是“rmnamed”)中删除了文件的一个版本 (由ClearQuest引用或者通过其他途径获得)。
意思是一个文件可能被ClearQuest或某个ClearCase活动引用,但不能直接在dynamic视图中使用ClearCase。
但是,它的扩展path名仍然可以在同一个dynamic视图中访问。

Clearcase将其“文件”存储为目录。 你可以cd进入一个文件,并进入它正在使用的实际目录来存储文件的所有修订; 虽然操作系统挂钩通常工作,也许这导致Perl无法识别一些文件。