Как я могу передать параметр требуемой функции при использовании File::Find Perl? [дубликат]

6
задан Community 23 May 2017 в 11:55
поделиться

3 ответа

Вы используете закрытие:

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': $!";
  }
10
ответ дан 8 December 2019 в 13:46
поделиться

Вы можете создать любую кодовую ссылку по своему усмотрению. Вам не нужно использовать ссылку на именованную подпрограмму. Много примеров, как это сделать, смотрите в моем File::Find::Closures модуле. Я создал этот модуль, чтобы ответить именно на этот вопрос.

4
ответ дан 8 December 2019 в 13:46
поделиться

Кот вышел из мешка сейчас:

http://developers.facebook.com/news.php?blog=1&story=358

HipHop для PHP технически не является компилятором. Скорее это преобразователь исходного кода. HipHop программно преобразует исходный код PHP в высокооптимизированный C++ и затем использует g++ для его компиляции. HipHop выполняет исходный код семантически эквивалентным способом и жертвует некоторыми редко используемыми функциями, такими как eval (), в обмен на повышение производительности. HipHop включает в себя трансформатор кода, повторное внедрение системы выполнения PHP и перезапись многих распространенных расширений PHP для использования преимуществ оптимизации производительности.

Другая статья на ReadWrite Web подтверждает, что Facebook Быстрее, дебютирует доморощенный компилятор PHP и еще один Марко Табини описывает то, что вам нужно знать.

-121--1861418-

◀ ▶

There - это пара символов, близких к нужным на диаграмме геометрических форм . Однако, как говорят другие, пользуйтесь иконами и держитесь подальше от зоны частного пользования.

-121--4571452-

Файл:: Найти контракт указывает, какая информация передается и требуется .

Требуемая функция не принимает аргументов, а выполняет свою работу через набор переменных.

  • $ File:: Find:: dir - текущее имя каталога,
  • $ _ - текущее имя файла в этом каталоге
  • $ File:: Find:: name - полный путь к файлу.

При наличии дополнительной информации, которую вы хотите сделать доступной в обратном вызове, вы можете создать ссылку на подзадание, которая вызовет нужный подузел с требуемыми параметрами .

3
ответ дан 8 December 2019 в 13:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: