Bestand :: VIND :: Parallel

Bestand :: Vinden :: Parallel Hiermee kunt u een aantal vergelijkbare mappen parallel doorkruisen.
Download nu

Bestand :: VIND :: Parallel Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Andy Armstrong
  • Uitgever website:
  • http://search.cpan.org/~andya/

Bestand :: VIND :: Parallel Tags


Bestand :: VIND :: Parallel Beschrijving

Bestand :: Zoek :: Parallel Hiermee kunt u een aantal vergelijkbare mappen parallel doorkruisen. Bestand :: Vinden :: Parallel Hiermee kunt u een aantal vergelijkbare mappen in ParallelL.Synopsis gebruiken Gebruik Bestand: Vind :: Parallel; Mijn $ FFP = Bestand :: Zoek :: Parallel-> Nieuw (QW (/ FOO / BAR)); Print "Unie: N"; My $ Union = $ FFP-> Any_iterator Print "$ _n" terwijl $ _ = $ Union -> (); Print "kruispunt: n"; Mijn $ Inter = $ FFP-> All_iterator Print "$ _N" Terwijl $ _ = $ Inter -> (); Bestand :: Vinden is de ideale tool voor het snel scannen van een enkele map. Maar soms is het leuk om operaties op meerdere soortgelijke mappen parallel uit te voeren. Misschien moet u de inhoud van twee mappen vergelijken of bestanden converteren die in meer dan één map worden gedeeld in harde link. Deze module produceert iterators die elk bestand en de directory in de Unie of de kruising van een aantal mappen bezoeken. Hmm. Wat betekent dat? Gezien twee mappen-bomen zoals deze foo foo / a foo / b / c foo / d bar bar / een bar / b bar / eyou kan kiezen om te werken met de kruising van de twee mapstructuren :. ./A ./bthat is de subdirectories en bestanden die het foo- en staafdelen delen.Alterly u kunt werken met de Unie van de twee mapstructuren :. ./A ./B ./B/C ./STILL NIET CLEAR? Welnu, als je een recursieve diff in de twee mappen wilde doen, zou je hun vakbond herhoogden, zodat je bestanden zou kunnen melden die aanwezig waren in Foo, maar ontbraken in Bar en Vice-versa. Als je aan de andere kant de Mappen en zoek alle bestanden die allen voorkomen dat ze allemaal hun kruispunt hebben gehouden en alleen bestanden en mappen ontvangen die aanwezig waren in alle mappen die worden gescand. De Any_iterator en All_iterator zijn gebouwd op een meer generaal methode: Want_iterator. Als u bijvoorbeeld links tussen bestanden wilt maken die in meer dan één map te vinden zijn, krijgt u mogelijk uw iterator als deze: mijn $ iter = $ ffp-> wil_iterator (2); de blijkbaar magie '2' weerspiegelt het feit Dat als u links gaat maken, heeft u ten minste twee bestanden nodig. Het maakt niet uit hoeveel mappen waar u parallel vol bent, ziet u alleen bestanden en mappen die in ten minste twee van die directories verschijnen. File :: Vinden :: Parallel kan elk aantal mappen tegelijkertijd scannen. Hier is een voorbeeld (op UNIX-systemen) die de lijst met alle bestanden en mappen retourneert die in alle home-directory's zijn opgenomen. Gebruik bestand :: glob ': glob'; Gebruik bestand :: Zoek :: Parallel; Mijn $ Find = File :: Find :: Parallel-> Nieuw (BSD_GLOB ('/ Home / *')); mijn @Common = (); mijn $ iter = $ find-> all_iterator; terwijl (gedefinieerd mijn $ obj = $ iter -> ()) {push @common, $ obj; } Afdrukken "De volgende bestanden zijn gebruikelijk voor" ", alle directories onder / huis: N"; Print "$ _n" voor @Common; Voor een volledig concreet voorbeeld van het gebruik zie LnCopies in de bak subdirectory van deze distributie.iteratorsDe iterator die is geretourneerd door Any_iterator, All_iterator of Want_iterator is een code-referentie. Bel het om het volgende bestand of de map te krijgen. Wanneer alle bestanden en directories zijn geretourneerd, retourneert de iterator undef.Once gemaakt een iterator is onafhankelijk van het bestand :: Vind :: Parallel-object dat het heeft gemaakt. Als het object uit de reikwijdte gaat en wordt vernietigd tijdens het leven van de iterator, zal het nog steeds normaal functioneren. Je hebt misschien veel actieve iterators voor een enkel bestand :: Vind op elk moment. Vereisten: · Perl


Bestand :: VIND :: Parallel Gerelateerde software