在Windows上的Linux模拟器中使用正向与反斜杠之间的差异

时间:2016-06-24 15:09:21

标签: linux windows perl

所以我遇到了一个我不知道如何解决的问题。我在Windows计算机上使用Cygwin Linux模拟器进行一些用perl编写的分子动力学模拟。我一直在遇到无法读取文件的问题。问题的代码在这里:

if (defined $topfile && -r $topfile) {
  $self->_sendCommand("open unit 10 read form name \"$topfile\"");
  $self->_sendCommand("read RTF card unit 10");
  $self->_sendCommand("close unit 10");
  $havertf=1;
}

我使用以下方法对其进行了测试:

print "$topfile\n";
if (-r $topfile) {
  print "YES\n";
}
if (defined $topfile) {
  print "YES2\n";
}

因此两个YES语句都打印出来,我知道文件是定义和可读的。

我为第一部分的每一行测试了打印报表,我的问题出现在"打开单元10读取表单名称之后。" 这是确切的错误:

 CHARMM>    open unit 10 read form name /C:/CHARMM_Nichols/CHARMM/test/data/top_all22_prot.inp/
 VOPEN> Attempting to open::/c:/charmm_nichols/charmm/test/data/top_all22_prot.inp/::
 OPNLGU> Unit  10 cannot be opened as /C:/CHARMM_NICHOLS/CHARMM/TEST/DATA/TOP_ALL22_PROT.INP/  

我认为问题归结为反斜杠和转发斜杠,因为我的所有目录都在windows系统(反斜杠)中,但程序正在执行期望Linux系统(正斜杠)。知道如何修复和/或测试这个吗?我可以写一个脚本来改变前向反斜杠吗?它不允许我将环境变量($ topfile)更改为模拟器中的反斜杠。

0 个答案:

没有答案
相关问题