在目录中为每个.ly文件运行lilypond

时间:2013-04-14 20:00:03

标签: perl

我知道我可以通过Perl文档来编写并写下来,但我怀疑这是一个简单的单行程来完成我想要的东西,这需要我太长时间才能搞清楚。

我有一个主要的.ly文件用于播放一段音乐,还有一组较小的.ly文件来生成部分和指挥得分。

所以,我想要做的基本上是这样的:

for each file in directory
   if filename ends in ".ly"
      lilypond filename
   endif
endfor

感谢类似的问题,我刚刚找到了.BAT的答案,但我想知道下次如何在Perl中做到这一点。 :-)谢谢!

1 个答案:

答案 0 :(得分:4)

use autodie qw( :all );
opendir(my $dh, $dir_qfn);
while (defined( my $file = readdir($dh) )) {
   system('lilypond', "$dir_qfn\\$file")
      if $file =~ /\.ly\z/i;
}