我有一个带有一个文件的目录的路径。但是,我不知道文件的前缀意味着我只知道扩展名。如何在以下代码的路径中指明此文件。
for (my $k = 1; $k < 21; $k++)
{
my $best = "best";
my $underscore = "_";
my $best = "$best$underscore$k.bgf";
my $alabest = "$best$underscore$k.ala.bgf";
my $source1 = "$name/$interhelical/$cnti/$multidock/$best";
my $source2 = "$name/$interhelical/$cnti/$multidock/$alabest";
my $source3 = "$name/$interhelical/$cnti/$multidock/$spheres/$sph1/$sph2/*.sph";
my $target = "some path";
copy $source1 => $target;
}
我不知道sph2目录中文件的名称,但我希望能够在路径中指明它,而不管前缀如何。你能救我吗?
答案 0 :(得分:1)
你需要写一些像
这样的东西my @bgf = glob "$name/$interhelical/$cnti/$multidock/*.bgf"
然后数组@bgf
将包含该目录中以.bgf
结尾的所有文件。
如果你对“我有一个带有一个文件的目录的路径”是正确的,那么该数组将只有一个元素。
但你的问题很不清楚。什么是$source3
?您是否还需要在.bgf
目录中查找spheres
个文件?为什么路径的每个单独段都有变量?如果你已经给出了一个简单的路径,那么编写
my $bgf_path = 'name/interhelical/cnti/multidock';
my @bgf = glob "$bgf_path/*.bgf";
这假设$name
,$interhelical
等包含字符串name
,interhelical
的方式与$best
包含best
的方式相同
答案 1 :(得分:0)