2016-07-08 5 views
-6

나는 펄에 뭔가를 쓰기 위해 노력하고 있어요 여러 명령을 실행 (그러나 나는 또한 동일한 기능을 수행하는 파이썬이나 PHP와 행복 해요)되는 :한 번

  • 예를 들어, 말의 (목록을 인수합니다 파일 또는 URL)

  • 는 예를 들어 같은 추가 시스템 명령 (예를 들어 cp 추가)

  • 10의 최대에게 말, 목록에서 다음 명령을 실행 해, 총

  • 에서 천
  • 10 개의 슬롯 중 하나를 기다리고 새 절차를 시작하여 1000 개의 요소를 이동합니다.

나는 짧은 절단 지금이야 다시 사용하는 펄의 명령을 실행 틱하지만,이를 달성하기 위해 더 나은 방법이 있는지, 정말 감사 할 것입니다.

+0

문제는 당신이 현재하고있는 것은 좋은 연습 후 최소한의 예를인지하는 경우 코드가 도움이 될 것입니다. 당신의 질문이 당신이 이미 다른 언어로하고있는 것을하는 방법이라면, 당신의 코드의 최소한의 예가 도움이 될 것입니다. 전반적으로, 실제 질문과 최소한의 코드 예제만으로 도움이 될 것입니다. – apokryfos

+1

가능한 복제본 http://stackoverflow.com/q/1087291/1331451 – simbabque

+1

작성한 것을 보여 주어야하며, "더 나은 방법"이 무엇인지 알 수있는 방법이 없습니다. 아마 [Parallel :: ForkManager] (https://metacpan.org/pod/Parallel::ForkManager)를 보셔야합니다 – Borodin

답변

1

당신은 당신이 쓴 것을 보여 주어야한다, 또는 우리는 "더 나은 방법"

당신은 아마 Parallel::ForkManager을 살펴해야 될 일을 알 방법이 없습니다. 이 모듈을 사용하면 프로그램은 다음과 같이 보일 수 있습니다.

가장 중요한 것은 use strictuse warnings 'all'이고 선언 및 인구는 @list입니다. 나는 당신이 공란을 채울 수 있다고 믿는다.

열 병렬 처리의 한계는 모듈에 의해 부과되고, "..."은 목적지 경로로 채워 져야한다. 그것은 당신이 대신 지불 한 단지 cp를 호출하는 펄 내에서 무엇을해야하는 것이 가장, 그래서 나는 File::Copy을 포함 한 대신

use Parallel::ForkManager(); 
use File::Copy 'copy'; 

my $pm = Parallel::ForkManager->new(10); 

for my $file (@list) { 

    next if my $pid = $pm->start; 

    # Child code 

    copy $file, "..."; 
    $pm->finish; 
} 
+0

Perl Dog가 정확히 내가 찾던 모습이었습니다. 이전 게시물에 대한 답변 - 사과, 나는 두 가지 언어로 약 5 변종 있었는데 내가 부스러기 코드 부끄러운 짓을하려고했던 것의 개념을 쓰는 것이 가장 좋았다고 생각했습니다 :) 사과는 다음에 규칙을 따를 것입니다! 응답 시간을 내 주셔서 다시 한번 감사드립니다. – bamstan19