Perl:在不知道前缀的情况下复制文件

Perl:在不知道前缀的情况下复制文件,perl,file,Perl,File,我有一个文件目录的路径。但是,我不知道文件的前缀,这意味着我只知道扩展名。如何在以下代码的路径中指示此文件 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 = "$na

我有一个文件目录的路径。但是,我不知道文件的前缀,这意味着我只知道扩展名。如何在以下代码的路径中指示此文件

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;
}
for(我的$k=1;$k<21;$k++)
{
我的$best=“best”;
我的$underline=“25;”;
my$best=“$best$下划线$k.bgf”;
my$alabest=“$best$下划线$k.ala.bgf”;
my$source1=“$name/$interspiral/$cnti/$multidock/$best”;
my$source2=“$name/$interspiral/$cnti/$multidock/$alabest”;
my$source3=“$name/$interspiral/$cnti/$multidock/$sphers/$sph1/$sph2/*.sph”;
我的$target=“一些路径”;
复制$source1=>$target;
}

我不知道sph2目录中的文件名,但我希望能够在路径中指示它,而不考虑前缀。你能帮我吗

在这种情况下,帕尔斯是你的朋友。

你需要写一些

my @bgf = glob "$name/$interhelical/$cnti/$multidock/*.bgf"
然后数组
@bgf
将包含该目录中以
.bgf
结尾的所有文件

如果“我有一个文件目录的路径”的说法是正确的,那么数组将只有一个元素

但你的问题很不清楚。什么是
$source3
?您是否还需要在
spheres
目录中查找
.bgf
文件?为什么路径的每个单独段都有变量?如果像你说的那样给了你一条简单的路径,那么写出来会更好

my $bgf_path = 'name/interhelical/cnti/multidock';
my @bgf = glob "$bgf_path/*.bgf";

假设
$name
$interspiral
等包含字符串
name
interspiral
,其方式与
$best
保持
best

的方式相同,是否有理由不只使用
my$best=“best.$k.bgf”