Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Perl';时如何将参数传递给所需函数;s文件::查找?_Perl_File Find - Fatal编程技术网

使用Perl';时如何将参数传递给所需函数;s文件::查找?

使用Perl';时如何将参数传递给所需函数;s文件::查找?,perl,file-find,Perl,File Find,可能重复: 可以像这样使用Perl模块: find( \&wanted, @directories); 我们如何向所需的函数添加参数 例如,我想遍历/tmp中的文件,从每个文件中提取一些信息,结果应该存储到不同的目录中。输出目录应该作为一个参数给出。的合同指定了传递给&want的信息 所需函数不接受任何参数,而是通过变量集合执行其工作 $File::Find::dir是当前目录名 $是该目录中的当前文件名 $File::Find::name是文件的完整路径名 如果您想在回调中提供

可能重复:

可以像这样使用Perl模块:

find( \&wanted, @directories);
我们如何向
所需的
函数添加参数

例如,我想遍历
/tmp
中的文件,从每个文件中提取一些信息,结果应该存储到不同的目录中。输出目录应该作为一个参数给出。

的合同指定了传递给
&want
的信息

所需函数不接受任何参数,而是通过变量集合执行其工作

  • $File::Find::dir
    是当前目录名
  • $是该目录中的当前文件名
  • $File::Find::name
    是文件的完整路径名

如果您想在回调中提供额外的信息,您可以。

您可以创建任何类型的代码引用。您不必使用对命名子例程的引用。有关如何执行此操作的许多示例,请参见我的模块。我创建该模块就是为了准确地回答这个问题。

您使用一个闭包:

use File::Copy;

my $outdir= "/home/me/saved_from_tmp";
find( sub { copy_to( $outdir, $_); }, '/tmp');

sub copy_to
  { my( $destination_dir, $file)= @_;
    copy $file, "$destination_dir/$file" 
      or die "could not copy '$file' to '$destination_dir/$file': $!";
  }

请更具体地描述您正在尝试做什么,我将更新我的答案。另请参阅更新:我喜欢比文件::查找更好。然而,布莱恩的模块可能更接近你真正想要的。@SinanÜnür你的话解决了我的问题。如果你把它作为一个答案,我会标记为accepted@ilang7不必为任何人感到羞耻。谢谢,我知道这个选项,但我想知道是否有一些黑客通过参数(不使用全局)。