CINXE.COM
MCE::Child - A threads-like parallelization module compatible with Perl 5.8 - metacpan.org
<!DOCTYPE html> <html lang="en-US"> <head> <title>MCE::Child - A threads-like parallelization module compatible with Perl 5.8 - metacpan.org</title> <link rel="preload" as="fetch" href="/account/login_status" crossorigin="anonymous" /> <link href="/assets/style-XFEQ536G.css" rel="stylesheet" type="text/css"> <script src="/assets/main-WXBSEDQJ.js" type="module"></script> <link rel="alternate" type="application/rss+xml" title="Recent CPAN Uploads of MCE - MetaCPAN" href="/dist/MCE/releases.rss" /> <link rel="canonical" href="https://metacpan.org/pod/MCE::Child" /> <meta name="description" content="A threads-like parallelization module compatible with Perl 5.8" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5"> <link rel="shortcut icon" href="/static/icons/favicon.ico"> <link rel="apple-touch-icon" sizes="152x152" href="/static/icons/apple-touch-icon.png"> <link rel="search" href="/static/opensearch.xml" type="application/opensearchdescription+xml" title="MetaCPAN"> <script async src="https://perl-ads.perlhacks.com/perl-ads.js"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-E82Q2V8LVD"></script> <meta property="og:site_name" content="MetaCPAN" /> <meta name="twitter:site" content="@metacpan" /> <meta property="og:type" content="article" /> <meta name="twitter:card" content="summary" /> <meta property="og:url" content="https://metacpan.org/pod/MCE::Child" /> <meta property="og:title" content="MCE::Child" /> <meta property="og:description" content="A threads-like parallelization module compatible with Perl 5.8" /> <meta property="og:image" content="https://metacpan.org/static/images/dots.png" /> </head> <body> <nav class="navbar navbar-default" role="navigation"> <div class="header-logo-large hidden-xs"> <a href="/" tabindex="0"> <svg class="logo" aria-label="MetaCPAN"> <use class="logo" href="/static/images/metacpan-logo.svg#logo" /> </svg> </a> </div> <div class="header-logo-icon visible-xs"> <a href="/"> <svg class="logo" aria-label="MetaCPAN"> <use class="logo" href="/static/images/metacpan-logo.svg#dots" /> </svg> </a> </div> <ul class="nav navbar-nav menu-items hidden-xs hidden-sm"> <li><a href="/about">About</a></li> <li><a href="/about/sponsors">Sponsor</a></li> <li><a href="https://grep.metacpan.org/">grep::cpan</a></li> <li><a href="/recent">Recent</a></li> <li><a href="/about/faq">FAQ</a></li> <li><a href="/tools">Tools</a></li> <li><a href="https://fastapi.metacpan.org/">API</a></li> </ul> <ul class="nav navbar-nav navbar-right"> <button type="button" class="searchbar-btn visible-xs visible-sm"> <i class="fa fa-search button-fa-icon"></i> </button> <form action="/search" class="searchbar-form visible-md visible-lg search-form form-horizontal"> <input type="hidden" name="size" id="metacpan_search-size" value="20"> <div class="form-group"> <div class="search-group"> <i class="fa fa-search"></i> <input type="text" name="q" placeholder="Search the CPAN" size="41" autocorrect="off" autocapitalize="off" spellcheck="false" id="metacpan_search-input" class="form-control" value=""> </div> </div> </form> <li class="icon-slidepanel visible-xs visible-sm"> <button data-toggle="slidepanel" data-target=".slidepanel"> <span class="button-fa-icon"> <i class="fa fa-bars slidepanel-open"></i> <i class="fa fa-times slidepanel-close"></i> </span> </button> </li> <li class="dropdown login-dropdown show-logged-in"> <button type="button" class="dropdown-toggle" data-toggle="dropdown"> <i class="fa fa-user button-fa-icon logged-in-icon" aria-hidden="true"></i> <i class="fas fa-chevron-down"></i> </button> <ul class="dropdown-menu"> <li><a href="/account/identities">Identities</a></li> <li><a href="/account/profile">Profile</a></li> <li><a href="/account/favorite/list">Favorites</a></li> <li> <a href="#" type="button" class="logout-button"> Logout </a> </li> </ul> </li> <li class="dropdown login-dropdown show-logged-out"> <button type="button" class="dropdown-toggle" data-toggle="dropdown"> <i class="fa fa-user button-fa-icon avatar-placeholder" aria-hidden="true"></i> <i class="fas fa-chevron-down"></i> </button> <ul class="dropdown-menu"> <li> <a href="/login/github"> <i class="fab fa-github fa-fw"></i> GitHub </a> </li> <li> <a href="/login/twitter"> <i class="fab fa-twitter fa-fw"></i> Twitter </a> </li> <li> <a href="/login/google"> <i class="fab fa-google fa-fw"></i> Google </a> </li> </ul> </li> <li class="dropdown login-dropdown hide-logged-in hide-logged-out"> <button> <i class="fa fa-user button-fa-icon" aria-hidden="true"></i> </button> </li> </ul> </nav> <div class="page-content "> <div id="perl-ad-target" class="top-notify-banner perl-ad-target"> </div> <nav class="sidebar"> <div class="slidepanel"> <ul class="nav-list "> <li class="nav-header no-margin-top"> <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The date that this version of MCE was released."> <span class="relatize">02 Jan 2025 22:29:19 UTC</span> </div> </li> <li> Distribution: <a href="/dist/MCE">MCE</a> </li> <li> Module version: 1.901 </li> <li> <a data-keyboard-shortcut="g s" href="/dist/MCE/source/lib/MCE/Child.pm">Source</a> (<a href="/dist/MCE/source/lib/MCE/Child.pm?raw=1">raw</a>) </li> <li> <a data-keyboard-shortcut="g b" href="/dist/MCE/source/lib/MCE">Browse</a> (<a href="/dist/MCE/source/lib/MCE?raw=1">raw</a>) </li> <li> <a data-keyboard-shortcut="g c" href="/dist/MCE/changes">Changes</a> </li> <li> <a rel="noopener nofollow" class="nopopup" href="https://github.com/marioroy/mce-perl">Homepage</a> </li> <li> <a class="nopopup" href="/dist/MCE/contribute">How to Contribute</a> </li> <li> <a rel="noopener nofollow" data-keyboard-shortcut="g r" href="https://github.com/marioroy/mce-perl">Repository</a> </li> <li> <a rel="noopener nofollow" data-keyboard-shortcut="g i" href="https://github.com/marioroy/mce-perl/issues">Issues</a> (0) </li> <li> <a rel="noopener nofollow" href="http://matrix.cpantesters.org/?dist=MCE+1.901" title="Matrix">Testers</a> </li> <li> <a rel="noopener nofollow" href="http://cpants.cpanauthors.org/release/MARIOROY/MCE-1.901">Kwalitee</a> </li> <li> <div class="ttip" data-toggle="tooltip" data-placement="bottom" title="The # people with an indexing permission on MCE who have released something to CPAN in the last 2 years (i.e. the # people likely able to release critical fixes in a timely manner)"> Bus factor: 1 </div> </li> <li> License: perl_5 </li> <li> Perl: v5.8.1 </li> <li class="nav-header">Activity</li> <li> <div class="activity-graph"> <img src="/dist/MCE/activity.svg?res=month" /> <div class="comment">24 month</div> </div> </li> <li class="nav-header">Tools</li> <li> <a itemprop="downloadUrl" href="https://cpan.metacpan.org/authors/id/M/MA/MARIOROY/MCE-1.901.tar.gz"> Download (<span itemprop="fileSize">227.51KB</span>)</a> </li> <li> <a href="https://explorer.metacpan.org/?url=%2Fmodule%2FMARIOROY%2FMCE-1.901%2Flib%2FMCE%2FChild.pm"> MetaCPAN Explorer </a> </li> <li> <a href="/dist/MCE/permissions"> Permissions </a> </li> <li> <a href="/dist/MCE/releases.rss"> Subscribe to distribution </a> </li> <li> <button class="btn btn-link" data-toggle="modal" data-target="#metacpan_install-instructions-dialog"> Install Instructions </button> </li> <li> <form action="/search"> <input type="hidden" name="q" value="dist:MCE"> <input type="search" name="q" placeholder="Search distribution" class="form-control tool-bar-form"> <input type="submit" style="display: none"> </form> </li> <li> <form action="https://grep.metacpan.org/search"> <input type="hidden" name="qd" value="MCE"> <input type="hidden" name="source" value="metacpan"> <input type="search" name="q" placeholder="grep distribution" class="form-control tool-bar-form"> <input type="submit" style="display: none"> </form> </li> <li class="version-jump"> <select class="select-navigator form-control tool-bar-form"> <option disabled selected>Jump to version</option> <option disabled value="/release/MARIOROY/MCE-1.901/view/lib/MCE/Child.pm" >1.901 (MARIOROY on 2025-01-02)</option> <option value="/release/MARIOROY/MCE-1.900/view/lib/MCE/Child.pm" >1.900 (MARIOROY on 2024-09-10)</option> <option value="/release/MARIOROY/MCE-1.889/view/lib/MCE/Child.pm" >1.889 (MARIOROY on 2023-09-13)</option> <option value="/release/MARIOROY/MCE-1.838/view/lib/MCE/Child.pm" >1.838 (MARIOROY on 2019-01-23)</option> <optgroup label="BackPAN">' <option value="/release/MARIOROY/MCE-1.899/view/lib/MCE/Child.pm" >1.899 (MARIOROY on 2024-09-06)</option> <option value="/release/MARIOROY/MCE-1.898/view/lib/MCE/Child.pm" >1.898 (MARIOROY on 2024-08-21)</option> <option value="/release/MARIOROY/MCE-1.897/view/lib/MCE/Child.pm" >1.897 (MARIOROY on 2024-06-20)</option> <option value="/release/MARIOROY/MCE-1.896/view/lib/MCE/Child.pm" >1.896 (MARIOROY on 2024-06-11)</option> <option value="/release/MARIOROY/MCE-1.895/view/lib/MCE/Child.pm" >1.895 (MARIOROY on 2024-06-10)</option> <option value="/release/MARIOROY/MCE-1.894/view/lib/MCE/Child.pm" >1.894 (MARIOROY on 2024-06-09)</option> <option value="/release/MARIOROY/MCE-1.893/view/lib/MCE/Child.pm" >1.893 (MARIOROY on 2024-06-08)</option> <option value="/release/MARIOROY/MCE-1.892/view/lib/MCE/Child.pm" >1.892 (MARIOROY on 2024-06-08)</option> <option value="/release/MARIOROY/MCE-1.891/view/lib/MCE/Child.pm" >1.891 (MARIOROY on 2024-06-06)</option> <option value="/release/MARIOROY/MCE-1.890/view/lib/MCE/Child.pm" >1.890 (MARIOROY on 2024-05-24)</option> <option value="/release/MARIOROY/MCE-1.888/view/lib/MCE/Child.pm" >1.888 (MARIOROY on 2023-06-21)</option> <option value="/release/MARIOROY/MCE-1.887/view/lib/MCE/Child.pm" >1.887 (MARIOROY on 2023-06-09)</option> <option value="/release/MARIOROY/MCE-1.886/view/lib/MCE/Child.pm" >1.886 (MARIOROY on 2023-06-06)</option> <option value="/release/MARIOROY/MCE-1.885/view/lib/MCE/Child.pm" >1.885 (MARIOROY on 2023-05-31)</option> <option value="/release/MARIOROY/MCE-1.884/view/lib/MCE/Child.pm" >1.884 (MARIOROY on 2023-01-05)</option> <option value="/release/MARIOROY/MCE-1.883/view/lib/MCE/Child.pm" >1.883 (MARIOROY on 2023-01-04)</option> <option value="/release/MARIOROY/MCE-1.882/view/lib/MCE/Child.pm" >1.882 (MARIOROY on 2022-12-03)</option> <option value="/release/MARIOROY/MCE-1.881/view/lib/MCE/Child.pm" >1.881 (MARIOROY on 2022-10-14)</option> <option value="/release/MARIOROY/MCE-1.880/view/lib/MCE/Child.pm" >1.880 (MARIOROY on 2022-10-10)</option> <option value="/release/MARIOROY/MCE-1.879/view/lib/MCE/Child.pm" >1.879 (MARIOROY on 2022-05-24)</option> <option value="/release/MARIOROY/MCE-1.878/view/lib/MCE/Child.pm" >1.878 (MARIOROY on 2022-02-20)</option> <option value="/release/MARIOROY/MCE-1.877/view/lib/MCE/Child.pm" >1.877 (MARIOROY on 2022-02-20)</option> <option value="/release/MARIOROY/MCE-1.876/view/lib/MCE/Child.pm" >1.876 (MARIOROY on 2021-12-02)</option> <option value="/release/MARIOROY/MCE-1.875/view/lib/MCE/Child.pm" >1.875 (MARIOROY on 2021-11-16)</option> <option value="/release/MARIOROY/MCE-1.874/view/lib/MCE/Child.pm" >1.874 (MARIOROY on 2020-08-18)</option> <option value="/release/MARIOROY/MCE-1.873/view/lib/MCE/Child.pm" >1.873 (MARIOROY on 2020-08-01)</option> <option value="/release/MARIOROY/MCE-1.872/view/lib/MCE/Child.pm" >1.872 (MARIOROY on 2020-06-15)</option> <option value="/release/MARIOROY/MCE-1.868/view/lib/MCE/Child.pm" >1.868 (MARIOROY on 2020-05-11)</option> <option value="/release/MARIOROY/MCE-1.867_01/view/lib/MCE/Child.pm" >1.867_01 DEV (MARIOROY on 2020-05-04)</option> <option value="/release/MARIOROY/MCE-1.867/view/lib/MCE/Child.pm" >1.867 (MARIOROY on 2020-05-04)</option> <option value="/release/MARIOROY/MCE-1.866/view/lib/MCE/Child.pm" >1.866 (MARIOROY on 2020-02-09)</option> <option value="/release/MARIOROY/MCE-1.865/view/lib/MCE/Child.pm" >1.865 (MARIOROY on 2019-12-26)</option> <option value="/release/MARIOROY/MCE-1.864/view/lib/MCE/Child.pm" >1.864 (MARIOROY on 2019-12-04)</option> <option value="/release/MARIOROY/MCE-1.863/view/lib/MCE/Child.pm" >1.863 (MARIOROY on 2019-11-25)</option> <option value="/release/MARIOROY/MCE-1.862/view/lib/MCE/Child.pm" >1.862 (MARIOROY on 2019-09-19)</option> <option value="/release/MARIOROY/MCE-1.861/view/lib/MCE/Child.pm" >1.861 (MARIOROY on 2019-09-18)</option> <option value="/release/MARIOROY/MCE-1.860/view/lib/MCE/Child.pm" >1.860 (MARIOROY on 2019-09-16)</option> <option value="/release/MARIOROY/MCE-1.850/view/lib/MCE/Child.pm" >1.850 (MARIOROY on 2019-09-09)</option> <option value="/release/MARIOROY/MCE-1.849/view/lib/MCE/Child.pm" >1.849 (MARIOROY on 2019-09-09)</option> <option value="/release/MARIOROY/MCE-1.848/view/lib/MCE/Child.pm" >1.848 (MARIOROY on 2019-09-04)</option> <option value="/release/MARIOROY/MCE-1.847/view/lib/MCE/Child.pm" >1.847 (MARIOROY on 2019-09-03)</option> <option value="/release/MARIOROY/MCE-1.846/view/lib/MCE/Child.pm" >1.846 (MARIOROY on 2019-08-27)</option> <option value="/release/MARIOROY/MCE-1.845/view/lib/MCE/Child.pm" >1.845 (MARIOROY on 2019-08-26)</option> <option value="/release/MARIOROY/MCE-1.844/view/lib/MCE/Child.pm" >1.844 (MARIOROY on 2019-08-15)</option> <option value="/release/MARIOROY/MCE-1.843/view/lib/MCE/Child.pm" >1.843 (MARIOROY on 2019-07-24)</option> <option value="/release/MARIOROY/MCE-1.842/view/lib/MCE/Child.pm" >1.842 (MARIOROY on 2019-07-22)</option> <option value="/release/MARIOROY/MCE-1.841/view/lib/MCE/Child.pm" >1.841 (MARIOROY on 2019-07-08)</option> <option value="/release/MARIOROY/MCE-1.840/view/lib/MCE/Child.pm" >1.840 (MARIOROY on 2019-07-07)</option> <option value="/release/MARIOROY/MCE-1.839/view/lib/MCE/Child.pm" >1.839 (MARIOROY on 2019-07-07)</option> <option value="/release/MARIOROY/MCE-1.837/view/lib/MCE/Child.pm" >1.837 (MARIOROY on 2018-08-25)</option> <option value="/release/MARIOROY/MCE-1.836/view/lib/MCE/Child.pm" >1.836 (MARIOROY on 2018-06-25)</option> <option value="/release/MARIOROY/MCE-1.835/view/lib/MCE/Child.pm" >1.835 (MARIOROY on 2018-03-13)</option> <option value="/release/MARIOROY/MCE-1.834/view/lib/MCE/Child.pm" >1.834 (MARIOROY on 2018-01-23)</option> <option value="/release/MARIOROY/MCE-1.833/view/lib/MCE/Child.pm" >1.833 (MARIOROY on 2017-12-28)</option> <option value="/release/MARIOROY/MCE-1.832/view/lib/MCE/Child.pm" >1.832 (MARIOROY on 2017-11-21)</option> <option value="/release/MARIOROY/MCE-1.831/view/lib/MCE/Child.pm" >1.831 (MARIOROY on 2017-10-09)</option> <option value="/release/MARIOROY/MCE-1.830/view/lib/MCE/Child.pm" >1.830 (MARIOROY on 2017-09-12)</option> <option value="/release/MARIOROY/MCE-1.829/view/lib/MCE/Child.pm" >1.829 (MARIOROY on 2017-05-03)</option> <option value="/release/MARIOROY/MCE-1.828/view/lib/MCE/Child.pm" >1.828 (MARIOROY on 2017-04-28)</option> <option value="/release/MARIOROY/MCE-1.827/view/lib/MCE/Child.pm" >1.827 (MARIOROY on 2017-04-05)</option> <option value="/release/MARIOROY/MCE-1.826/view/lib/MCE/Child.pm" >1.826 (MARIOROY on 2017-04-03)</option> <option value="/release/MARIOROY/MCE-1.825/view/lib/MCE/Child.pm" >1.825 (MARIOROY on 2017-04-02)</option> <option value="/release/MARIOROY/MCE-1.824/view/lib/MCE/Child.pm" >1.824 (MARIOROY on 2017-04-01)</option> <option value="/release/MARIOROY/MCE-1.823/view/lib/MCE/Child.pm" >1.823 (MARIOROY on 2017-04-01)</option> <option value="/release/MARIOROY/MCE-1.822/view/lib/MCE/Child.pm" >1.822 (MARIOROY on 2017-03-31)</option> <option value="/release/MARIOROY/MCE-1.821/view/lib/MCE/Child.pm" >1.821 (MARIOROY on 2017-03-19)</option> <option value="/release/MARIOROY/MCE-1.820/view/lib/MCE/Child.pm" >1.820 (MARIOROY on 2017-03-09)</option> <option value="/release/MARIOROY/MCE-1.819/view/lib/MCE/Child.pm" >1.819 (MARIOROY on 2017-03-04)</option> <option value="/release/MARIOROY/MCE-1.818/view/lib/MCE/Child.pm" >1.818 (MARIOROY on 2017-03-02)</option> <option value="/release/MARIOROY/MCE-1.817/view/lib/MCE/Child.pm" >1.817 (MARIOROY on 2017-02-25)</option> <option value="/release/MARIOROY/MCE-1.816/view/lib/MCE/Child.pm" >1.816 (MARIOROY on 2017-02-25)</option> <option value="/release/MARIOROY/MCE-1.815/view/lib/MCE/Child.pm" >1.815 (MARIOROY on 2017-02-24)</option> <option value="/release/MARIOROY/MCE-1.814/view/lib/MCE/Child.pm" >1.814 (MARIOROY on 2017-02-20)</option> <option value="/release/MARIOROY/MCE-1.813/view/lib/MCE/Child.pm" >1.813 (MARIOROY on 2017-02-16)</option> <option value="/release/MARIOROY/MCE-1.812/view/lib/MCE/Child.pm" >1.812 (MARIOROY on 2017-02-14)</option> <option value="/release/MARIOROY/MCE-1.811/view/lib/MCE/Child.pm" >1.811 (MARIOROY on 2017-02-14)</option> <option value="/release/MARIOROY/MCE-1.810/view/lib/MCE/Child.pm" >1.810 (MARIOROY on 2016-12-10)</option> <option value="/release/MARIOROY/MCE-1.809/view/lib/MCE/Child.pm" >1.809 (MARIOROY on 2016-11-23)</option> <option value="/release/MARIOROY/MCE-1.808/view/lib/MCE/Child.pm" >1.808 (MARIOROY on 2016-11-05)</option> <option value="/release/MARIOROY/MCE-1.807/view/lib/MCE/Child.pm" >1.807 (MARIOROY on 2016-11-01)</option> <option value="/release/MARIOROY/MCE-1.806/view/lib/MCE/Child.pm" >1.806 (MARIOROY on 2016-10-12)</option> <option value="/release/MARIOROY/MCE-1.805/view/lib/MCE/Child.pm" >1.805 (MARIOROY on 2016-09-01)</option> <option value="/release/MARIOROY/MCE-1.804/view/lib/MCE/Child.pm" >1.804 (MARIOROY on 2016-07-29)</option> <option value="/release/MARIOROY/MCE-1.803/view/lib/MCE/Child.pm" >1.803 (MARIOROY on 2016-07-11)</option> <option value="/release/MARIOROY/MCE-1.802/view/lib/MCE/Child.pm" >1.802 (MARIOROY on 2016-07-04)</option> <option value="/release/MARIOROY/MCE-1.801/view/lib/MCE/Child.pm" >1.801 (MARIOROY on 2016-07-03)</option> <option value="/release/MARIOROY/MCE-1.800/view/lib/MCE/Child.pm" >1.800 (MARIOROY on 2016-06-18)</option> <option value="/release/MARIOROY/MCE-1.799_03/view/lib/MCE/Child.pm" >1.799_03 DEV (MARIOROY on 2016-06-18)</option> <option value="/release/MARIOROY/MCE-1.799_02/view/lib/MCE/Child.pm" >1.799_02 DEV (MARIOROY on 2016-06-17)</option> <option value="/release/MARIOROY/MCE-1.799_01/view/lib/MCE/Child.pm" >1.799_01 DEV (MARIOROY on 2016-06-15)</option> <option value="/release/MARIOROY/MCE-1.708/view/lib/MCE/Child.pm" >1.708 (MARIOROY on 2016-05-28)</option> <option value="/release/MARIOROY/MCE-1.707/view/lib/MCE/Child.pm" >1.707 (MARIOROY on 2016-05-25)</option> <option value="/release/MARIOROY/MCE-1.706/view/lib/MCE/Child.pm" >1.706 (MARIOROY on 2016-04-23)</option> <option value="/release/MARIOROY/MCE-1.705/view/lib/MCE/Child.pm" >1.705 (MARIOROY on 2016-04-14)</option> <option value="/release/MARIOROY/MCE-1.704/view/lib/MCE/Child.pm" >1.704 (MARIOROY on 2016-04-14)</option> <option value="/release/MARIOROY/MCE-1.703/view/lib/MCE/Child.pm" >1.703 (MARIOROY on 2016-03-20)</option> <option value="/release/MARIOROY/MCE-1.702/view/lib/MCE/Child.pm" >1.702 (MARIOROY on 2016-03-15)</option> <option value="/release/MARIOROY/MCE-1.701/view/lib/MCE/Child.pm" >1.701 (MARIOROY on 2016-03-15)</option> <option value="/release/MARIOROY/MCE-1.700/view/lib/MCE/Child.pm" >1.700 (MARIOROY on 2016-03-08)</option> <option value="/release/MARIOROY/MCE-1.699_013/view/lib/MCE/Child.pm" >1.699_013 DEV (MARIOROY on 2016-03-07)</option> <option value="/release/MARIOROY/MCE-1.699_012/view/lib/MCE/Child.pm" >1.699_012 DEV (MARIOROY on 2016-03-04)</option> <option value="/release/MARIOROY/MCE-1.699_011/view/lib/MCE/Child.pm" >1.699_011 DEV (MARIOROY on 2016-03-02)</option> <option value="/release/MARIOROY/MCE-1.699_010/view/lib/MCE/Child.pm" >1.699_010 DEV (MARIOROY on 2016-02-09)</option> <option value="/release/MARIOROY/MCE-1.699_009/view/lib/MCE/Child.pm" >1.699_009 DEV (MARIOROY on 2016-02-03)</option> <option value="/release/MARIOROY/MCE-1.699_008/view/lib/MCE/Child.pm" >1.699_008 DEV (MARIOROY on 2016-02-01)</option> <option value="/release/MARIOROY/MCE-1.699_007/view/lib/MCE/Child.pm" >1.699_007 DEV (MARIOROY on 2016-01-09)</option> <option value="/release/MARIOROY/MCE-1.699_005/view/lib/MCE/Child.pm" >1.699_005 DEV (MARIOROY on 2016-01-05)</option> <option value="/release/MARIOROY/MCE-1.699_003/view/lib/MCE/Child.pm" >1.699_003 DEV (MARIOROY on 2016-01-03)</option> <option value="/release/MARIOROY/MCE-1.699_002/view/lib/MCE/Child.pm" >1.699_002 DEV (MARIOROY on 2016-01-02)</option> <option value="/release/MARIOROY/MCE-1.699_001/view/lib/MCE/Child.pm" >1.699_001 DEV (MARIOROY on 2016-01-02)</option> <option value="/release/MARIOROY/MCE-1.698_001/view/lib/MCE/Child.pm" >1.698_001 DEV (MARIOROY on 2015-11-12)</option> <option value="/release/MARIOROY/MCE-1.608/view/lib/MCE/Child.pm" >1.608 (MARIOROY on 2015-04-10)</option> <option value="/release/MARIOROY/MCE-1.607/view/lib/MCE/Child.pm" >1.607 (MARIOROY on 2015-04-10)</option> <option value="/release/MARIOROY/MCE-1.606/view/lib/MCE/Child.pm" >1.606 (MARIOROY on 2015-04-08)</option> <option value="/release/MARIOROY/MCE-1.605/view/lib/MCE/Child.pm" >1.605 (MARIOROY on 2015-04-06)</option> <option value="/release/MARIOROY/MCE-1.604/view/lib/MCE/Child.pm" >1.604 (MARIOROY on 2015-03-22)</option> <option value="/release/MARIOROY/MCE-1.603/view/lib/MCE/Child.pm" >1.603 (MARIOROY on 2015-03-18)</option> <option value="/release/MARIOROY/MCE-1.602/view/lib/MCE/Child.pm" >1.602 (MARIOROY on 2015-03-17)</option> <option value="/release/MARIOROY/MCE-1.601/view/lib/MCE/Child.pm" >1.601 (MARIOROY on 2015-03-16)</option> <option value="/release/MARIOROY/MCE-1.600/view/lib/MCE/Child.pm" >1.600 (MARIOROY on 2015-02-01)</option> <option value="/release/MARIOROY/MCE-1.522/view/lib/MCE/Child.pm" >1.522 (MARIOROY on 2014-12-25)</option> <option value="/release/MARIOROY/MCE-1.521/view/lib/MCE/Child.pm" >1.521 (MARIOROY on 2014-12-11)</option> <option value="/release/MARIOROY/MCE-1.520/view/lib/MCE/Child.pm" >1.520 (MARIOROY on 2014-11-05)</option> <option value="/release/MARIOROY/MCE-1.519/view/lib/MCE/Child.pm" >1.519 (MARIOROY on 2014-10-27)</option> <option value="/release/MARIOROY/MCE-1.518/view/lib/MCE/Child.pm" >1.518 (MARIOROY on 2014-10-27)</option> <option value="/release/MARIOROY/MCE-1.517/view/lib/MCE/Child.pm" >1.517 (MARIOROY on 2014-10-24)</option> <option value="/release/MARIOROY/MCE-1.516/view/lib/MCE/Child.pm" >1.516 (MARIOROY on 2014-10-03)</option> <option value="/release/MARIOROY/MCE-1.515/view/lib/MCE/Child.pm" >1.515 (MARIOROY on 2014-07-25)</option> <option value="/release/MARIOROY/MCE-1.514/view/lib/MCE/Child.pm" >1.514 (MARIOROY on 2014-06-05)</option> <option value="/release/MARIOROY/MCE-1.513/view/lib/MCE/Child.pm" >1.513 (MARIOROY on 2014-04-20)</option> <option value="/release/MARIOROY/MCE-1.512/view/lib/MCE/Child.pm" >1.512 (MARIOROY on 2014-04-19)</option> <option value="/release/MARIOROY/MCE-1.511/view/lib/MCE/Child.pm" >1.511 (MARIOROY on 2014-04-05)</option> <option value="/release/MARIOROY/MCE-1.510/view/lib/MCE/Child.pm" >1.510 (MARIOROY on 2014-03-27)</option> <option value="/release/MARIOROY/MCE-1.509/view/lib/MCE/Child.pm" >1.509 (MARIOROY on 2014-02-03)</option> <option value="/release/MARIOROY/MCE-1.508/view/lib/MCE/Child.pm" >1.508 (MARIOROY on 2014-02-01)</option> <option value="/release/MARIOROY/MCE-1.507/view/lib/MCE/Child.pm" >1.507 (MARIOROY on 2014-01-31)</option> <option value="/release/MARIOROY/MCE-1.506/view/lib/MCE/Child.pm" >1.506 (MARIOROY on 2014-01-30)</option> <option value="/release/MARIOROY/MCE-1.505/view/lib/MCE/Child.pm" >1.505 (MARIOROY on 2014-01-21)</option> <option value="/release/MARIOROY/MCE-1.504/view/lib/MCE/Child.pm" >1.504 (MARIOROY on 2013-10-29)</option> <option value="/release/MARIOROY/MCE-1.503/view/lib/MCE/Child.pm" >1.503 (MARIOROY on 2013-10-28)</option> <option value="/release/MARIOROY/MCE-1.502/view/lib/MCE/Child.pm" >1.502 (MARIOROY on 2013-10-22)</option> <option value="/release/MARIOROY/MCE-1.501/view/lib/MCE/Child.pm" >1.501 (MARIOROY on 2013-10-16)</option> <option value="/release/MARIOROY/MCE-1.500/view/lib/MCE/Child.pm" >1.500 (MARIOROY on 2013-10-10)</option> <option value="/release/MARIOROY/MCE-1.499_005/view/lib/MCE/Child.pm" >1.499_005 DEV (MARIOROY on 2013-10-05)</option> <option value="/release/MARIOROY/MCE-1.499_004/view/lib/MCE/Child.pm" >1.499_004 DEV (MARIOROY on 2013-10-03)</option> <option value="/release/MARIOROY/MCE-1.499_003/view/lib/MCE/Child.pm" >1.499_003 DEV (MARIOROY on 2013-10-03)</option> <option value="/release/MARIOROY/MCE-1.499_002/view/lib/MCE/Child.pm" >1.499_002 DEV (MARIOROY on 2013-10-03)</option> <option value="/release/MARIOROY/MCE-1.499_001/view/lib/MCE/Child.pm" >1.499_001 DEV (MARIOROY on 2013-09-23)</option> <option value="/release/MARIOROY/MCE-1.415/view/lib/MCE/Child.pm" >1.415 (MARIOROY on 2013-06-17)</option> <option value="/release/MARIOROY/MCE-1.414/view/lib/MCE/Child.pm" >1.414 (MARIOROY on 2013-06-16)</option> <option value="/release/MARIOROY/MCE-1.413/view/lib/MCE/Child.pm" >1.413 (MARIOROY on 2013-06-10)</option> <option value="/release/MARIOROY/MCE-1.412/view/lib/MCE/Child.pm" >1.412 (MARIOROY on 2013-06-09)</option> <option value="/release/MARIOROY/MCE-1.411/view/lib/MCE/Child.pm" >1.411 (MARIOROY on 2013-06-09)</option> <option value="/release/MARIOROY/MCE-1.410/view/lib/MCE/Child.pm" >1.410 (MARIOROY on 2013-05-29)</option> <option value="/release/MARIOROY/MCE-1.409/view/lib/MCE/Child.pm" >1.409 (MARIOROY on 2013-05-13)</option> <option value="/release/MARIOROY/MCE-1.408/view/lib/MCE/Child.pm" >1.408 (MARIOROY on 2013-03-20)</option> <option value="/release/MARIOROY/MCE-1.407/view/lib/MCE/Child.pm" >1.407 (MARIOROY on 2013-03-15)</option> <option value="/release/MARIOROY/MCE-1.406/view/lib/MCE/Child.pm" >1.406 (MARIOROY on 2013-03-13)</option> <option value="/release/MARIOROY/MCE-1.405/view/lib/MCE/Child.pm" >1.405 (MARIOROY on 2013-03-05)</option> <option value="/release/MARIOROY/MCE-1.404/view/lib/MCE/Child.pm" >1.404 (MARIOROY on 2013-02-24)</option> <option value="/release/MARIOROY/MCE-1.403/view/lib/MCE/Child.pm" >1.403 (MARIOROY on 2013-02-17)</option> <option value="/release/MARIOROY/MCE-1.402/view/lib/MCE/Child.pm" >1.402 (MARIOROY on 2013-02-14)</option> <option value="/release/MARIOROY/MCE-1.401/view/lib/MCE/Child.pm" >1.401 (MARIOROY on 2013-02-13)</option> <option value="/release/MARIOROY/MCE-1.400/view/lib/MCE/Child.pm" >1.400 (MARIOROY on 2013-02-11)</option> <option value="/release/MARIOROY/MCE-1.306/view/lib/MCE/Child.pm" >1.306 (MARIOROY on 2013-01-05)</option> <option value="/release/MARIOROY/MCE-1.305/view/lib/MCE/Child.pm" >1.305 (MARIOROY on 2013-01-05)</option> <option value="/release/MARIOROY/MCE-1.304/view/lib/MCE/Child.pm" >1.304 (MARIOROY on 2013-01-03)</option> <option value="/release/MARIOROY/MCE-1.303/view/lib/MCE/Child.pm" >1.303 (MARIOROY on 2013-01-02)</option> <option value="/release/MARIOROY/MCE-1.302/view/lib/MCE/Child.pm" >1.302 (MARIOROY on 2013-01-01)</option> <option value="/release/MARIOROY/MCE-1.301/view/lib/MCE/Child.pm" >1.301 (MARIOROY on 2012-12-31)</option> <option value="/release/MARIOROY/MCE-1.300/view/lib/MCE/Child.pm" >1.300 (MARIOROY on 2012-12-31)</option> <option value="/release/MARIOROY/MCE-1.201_004/view/lib/MCE/Child.pm" >1.201_004 DEV (MARIOROY on 2012-12-29)</option> <option value="/release/MARIOROY/MCE-1.201_003/view/lib/MCE/Child.pm" >1.201_003 DEV (MARIOROY on 2012-12-28)</option> <option value="/release/MARIOROY/MCE-1.201_002/view/lib/MCE/Child.pm" >1.201_002 DEV (MARIOROY on 2012-12-26)</option> <option value="/release/MARIOROY/MCE-1.202_001/view/lib/MCE/Child.pm" >1.202_001 DEV (MARIOROY on 2012-12-26)</option> <option value="/release/MARIOROY/MCE-1.201_001/view/lib/MCE/Child.pm" >1.201_001 DEV (MARIOROY on 2012-12-26)</option> <option value="/release/MARIOROY/MCE-1.201/view/lib/MCE/Child.pm" >1.201 (MARIOROY on 2012-12-21)</option> <option value="/release/MARIOROY/MCE-1.200/view/lib/MCE/Child.pm" >1.200 (MARIOROY on 2012-12-20)</option> <option value="/release/MARIOROY/MCE-1.106/view/lib/MCE/Child.pm" >1.106 (MARIOROY on 2012-12-19)</option> <option value="/release/MARIOROY/MCE-1.105/view/lib/MCE/Child.pm" >1.105 (MARIOROY on 2012-12-17)</option> <option value="/release/MARIOROY/MCE-1.104/view/lib/MCE/Child.pm" >1.104 (MARIOROY on 2012-11-26)</option> <option value="/release/MARIOROY/MCE-1.103/view/lib/MCE/Child.pm" >1.103 (MARIOROY on 2012-11-23)</option> <option value="/release/MARIOROY/MCE-1.102/view/lib/MCE/Child.pm" >1.102 (MARIOROY on 2012-11-22)</option> <option value="/release/MARIOROY/MCE-1.101/view/lib/MCE/Child.pm" >1.101 (MARIOROY on 2012-11-21)</option> <option value="/release/MARIOROY/MCE-1.100/view/lib/MCE/Child.pm" >1.100 (MARIOROY on 2012-11-21)</option> <option value="/release/MARIOROY/MCE-1.008/view/lib/MCE/Child.pm" >1.008 (MARIOROY on 2012-11-18)</option> <option value="/release/MARIOROY/MCE-1.007/view/lib/MCE/Child.pm" >1.007 (MARIOROY on 2012-11-16)</option> <option value="/release/MARIOROY/MCE-1.006/view/lib/MCE/Child.pm" >1.006 (MARIOROY on 2012-11-15)</option> <option value="/release/MARIOROY/MCE-1.005/view/lib/MCE/Child.pm" >1.005 (MARIOROY on 2012-11-13)</option> <option value="/release/MARIOROY/MCE-1.004/view/lib/MCE/Child.pm" >1.004 (MARIOROY on 2012-11-12)</option> <option value="/release/MARIOROY/MCE-1.003/view/lib/MCE/Child.pm" >1.003 (MARIOROY on 2012-11-10)</option> <option value="/release/MARIOROY/MCE-1.002/view/lib/MCE/Child.pm" >1.002 (MARIOROY on 2012-11-08)</option> <option value="/release/MARIOROY/MCE-1.001/view/lib/MCE/Child.pm" >1.001 (MARIOROY on 2012-11-08)</option> <option value="/release/MARIOROY/MCE-1.000/view/lib/MCE/Child.pm" >1.000 (MARIOROY on 2012-11-05)</option> </optgroup> </select> </li> <li class="version-diff"> <select class="select-navigator form-control tool-bar-form"> <option disabled selected>Diff with version</option> <option disabled value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.901/lib/MCE/Child.pm" >1.901 (MARIOROY on 2025-01-02)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.900/lib/MCE/Child.pm" >1.900 (MARIOROY on 2024-09-10)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.889/lib/MCE/Child.pm" >1.889 (MARIOROY on 2023-09-13)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.838/lib/MCE/Child.pm" >1.838 (MARIOROY on 2019-01-23)</option> <optgroup label="BackPAN">' <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.899/lib/MCE/Child.pm" >1.899 (MARIOROY on 2024-09-06)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.898/lib/MCE/Child.pm" >1.898 (MARIOROY on 2024-08-21)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.897/lib/MCE/Child.pm" >1.897 (MARIOROY on 2024-06-20)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.896/lib/MCE/Child.pm" >1.896 (MARIOROY on 2024-06-11)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.895/lib/MCE/Child.pm" >1.895 (MARIOROY on 2024-06-10)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.894/lib/MCE/Child.pm" >1.894 (MARIOROY on 2024-06-09)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.893/lib/MCE/Child.pm" >1.893 (MARIOROY on 2024-06-08)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.892/lib/MCE/Child.pm" >1.892 (MARIOROY on 2024-06-08)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.891/lib/MCE/Child.pm" >1.891 (MARIOROY on 2024-06-06)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.890/lib/MCE/Child.pm" >1.890 (MARIOROY on 2024-05-24)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.888/lib/MCE/Child.pm" >1.888 (MARIOROY on 2023-06-21)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.887/lib/MCE/Child.pm" >1.887 (MARIOROY on 2023-06-09)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.886/lib/MCE/Child.pm" >1.886 (MARIOROY on 2023-06-06)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.885/lib/MCE/Child.pm" >1.885 (MARIOROY on 2023-05-31)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.884/lib/MCE/Child.pm" >1.884 (MARIOROY on 2023-01-05)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.883/lib/MCE/Child.pm" >1.883 (MARIOROY on 2023-01-04)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.882/lib/MCE/Child.pm" >1.882 (MARIOROY on 2022-12-03)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.881/lib/MCE/Child.pm" >1.881 (MARIOROY on 2022-10-14)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.880/lib/MCE/Child.pm" >1.880 (MARIOROY on 2022-10-10)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.879/lib/MCE/Child.pm" >1.879 (MARIOROY on 2022-05-24)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.878/lib/MCE/Child.pm" >1.878 (MARIOROY on 2022-02-20)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.877/lib/MCE/Child.pm" >1.877 (MARIOROY on 2022-02-20)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.876/lib/MCE/Child.pm" >1.876 (MARIOROY on 2021-12-02)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.875/lib/MCE/Child.pm" >1.875 (MARIOROY on 2021-11-16)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.874/lib/MCE/Child.pm" >1.874 (MARIOROY on 2020-08-18)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.873/lib/MCE/Child.pm" >1.873 (MARIOROY on 2020-08-01)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.872/lib/MCE/Child.pm" >1.872 (MARIOROY on 2020-06-15)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.868/lib/MCE/Child.pm" >1.868 (MARIOROY on 2020-05-11)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.867_01/lib/MCE/Child.pm" >1.867_01 DEV (MARIOROY on 2020-05-04)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.867/lib/MCE/Child.pm" >1.867 (MARIOROY on 2020-05-04)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.866/lib/MCE/Child.pm" >1.866 (MARIOROY on 2020-02-09)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.865/lib/MCE/Child.pm" >1.865 (MARIOROY on 2019-12-26)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.864/lib/MCE/Child.pm" >1.864 (MARIOROY on 2019-12-04)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.863/lib/MCE/Child.pm" >1.863 (MARIOROY on 2019-11-25)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.862/lib/MCE/Child.pm" >1.862 (MARIOROY on 2019-09-19)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.861/lib/MCE/Child.pm" >1.861 (MARIOROY on 2019-09-18)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.860/lib/MCE/Child.pm" >1.860 (MARIOROY on 2019-09-16)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.850/lib/MCE/Child.pm" >1.850 (MARIOROY on 2019-09-09)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.849/lib/MCE/Child.pm" >1.849 (MARIOROY on 2019-09-09)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.848/lib/MCE/Child.pm" >1.848 (MARIOROY on 2019-09-04)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.847/lib/MCE/Child.pm" >1.847 (MARIOROY on 2019-09-03)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.846/lib/MCE/Child.pm" >1.846 (MARIOROY on 2019-08-27)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.845/lib/MCE/Child.pm" >1.845 (MARIOROY on 2019-08-26)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.844/lib/MCE/Child.pm" >1.844 (MARIOROY on 2019-08-15)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.843/lib/MCE/Child.pm" >1.843 (MARIOROY on 2019-07-24)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.842/lib/MCE/Child.pm" >1.842 (MARIOROY on 2019-07-22)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.841/lib/MCE/Child.pm" >1.841 (MARIOROY on 2019-07-08)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.840/lib/MCE/Child.pm" >1.840 (MARIOROY on 2019-07-07)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.839/lib/MCE/Child.pm" >1.839 (MARIOROY on 2019-07-07)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.837/lib/MCE/Child.pm" >1.837 (MARIOROY on 2018-08-25)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.836/lib/MCE/Child.pm" >1.836 (MARIOROY on 2018-06-25)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.835/lib/MCE/Child.pm" >1.835 (MARIOROY on 2018-03-13)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.834/lib/MCE/Child.pm" >1.834 (MARIOROY on 2018-01-23)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.833/lib/MCE/Child.pm" >1.833 (MARIOROY on 2017-12-28)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.832/lib/MCE/Child.pm" >1.832 (MARIOROY on 2017-11-21)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.831/lib/MCE/Child.pm" >1.831 (MARIOROY on 2017-10-09)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.830/lib/MCE/Child.pm" >1.830 (MARIOROY on 2017-09-12)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.829/lib/MCE/Child.pm" >1.829 (MARIOROY on 2017-05-03)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.828/lib/MCE/Child.pm" >1.828 (MARIOROY on 2017-04-28)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.827/lib/MCE/Child.pm" >1.827 (MARIOROY on 2017-04-05)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.826/lib/MCE/Child.pm" >1.826 (MARIOROY on 2017-04-03)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.825/lib/MCE/Child.pm" >1.825 (MARIOROY on 2017-04-02)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.824/lib/MCE/Child.pm" >1.824 (MARIOROY on 2017-04-01)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.823/lib/MCE/Child.pm" >1.823 (MARIOROY on 2017-04-01)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.822/lib/MCE/Child.pm" >1.822 (MARIOROY on 2017-03-31)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.821/lib/MCE/Child.pm" >1.821 (MARIOROY on 2017-03-19)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.820/lib/MCE/Child.pm" >1.820 (MARIOROY on 2017-03-09)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.819/lib/MCE/Child.pm" >1.819 (MARIOROY on 2017-03-04)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.818/lib/MCE/Child.pm" >1.818 (MARIOROY on 2017-03-02)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.817/lib/MCE/Child.pm" >1.817 (MARIOROY on 2017-02-25)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.816/lib/MCE/Child.pm" >1.816 (MARIOROY on 2017-02-25)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.815/lib/MCE/Child.pm" >1.815 (MARIOROY on 2017-02-24)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.814/lib/MCE/Child.pm" >1.814 (MARIOROY on 2017-02-20)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.813/lib/MCE/Child.pm" >1.813 (MARIOROY on 2017-02-16)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.812/lib/MCE/Child.pm" >1.812 (MARIOROY on 2017-02-14)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.811/lib/MCE/Child.pm" >1.811 (MARIOROY on 2017-02-14)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.810/lib/MCE/Child.pm" >1.810 (MARIOROY on 2016-12-10)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.809/lib/MCE/Child.pm" >1.809 (MARIOROY on 2016-11-23)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.808/lib/MCE/Child.pm" >1.808 (MARIOROY on 2016-11-05)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.807/lib/MCE/Child.pm" >1.807 (MARIOROY on 2016-11-01)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.806/lib/MCE/Child.pm" >1.806 (MARIOROY on 2016-10-12)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.805/lib/MCE/Child.pm" >1.805 (MARIOROY on 2016-09-01)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.804/lib/MCE/Child.pm" >1.804 (MARIOROY on 2016-07-29)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.803/lib/MCE/Child.pm" >1.803 (MARIOROY on 2016-07-11)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.802/lib/MCE/Child.pm" >1.802 (MARIOROY on 2016-07-04)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.801/lib/MCE/Child.pm" >1.801 (MARIOROY on 2016-07-03)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.800/lib/MCE/Child.pm" >1.800 (MARIOROY on 2016-06-18)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.799_03/lib/MCE/Child.pm" >1.799_03 DEV (MARIOROY on 2016-06-18)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.799_02/lib/MCE/Child.pm" >1.799_02 DEV (MARIOROY on 2016-06-17)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.799_01/lib/MCE/Child.pm" >1.799_01 DEV (MARIOROY on 2016-06-15)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.708/lib/MCE/Child.pm" >1.708 (MARIOROY on 2016-05-28)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.707/lib/MCE/Child.pm" >1.707 (MARIOROY on 2016-05-25)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.706/lib/MCE/Child.pm" >1.706 (MARIOROY on 2016-04-23)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.705/lib/MCE/Child.pm" >1.705 (MARIOROY on 2016-04-14)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.704/lib/MCE/Child.pm" >1.704 (MARIOROY on 2016-04-14)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.703/lib/MCE/Child.pm" >1.703 (MARIOROY on 2016-03-20)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.702/lib/MCE/Child.pm" >1.702 (MARIOROY on 2016-03-15)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.701/lib/MCE/Child.pm" >1.701 (MARIOROY on 2016-03-15)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.700/lib/MCE/Child.pm" >1.700 (MARIOROY on 2016-03-08)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.699_013/lib/MCE/Child.pm" >1.699_013 DEV (MARIOROY on 2016-03-07)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.699_012/lib/MCE/Child.pm" >1.699_012 DEV (MARIOROY on 2016-03-04)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.699_011/lib/MCE/Child.pm" >1.699_011 DEV (MARIOROY on 2016-03-02)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.699_010/lib/MCE/Child.pm" >1.699_010 DEV (MARIOROY on 2016-02-09)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.699_009/lib/MCE/Child.pm" >1.699_009 DEV (MARIOROY on 2016-02-03)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.699_008/lib/MCE/Child.pm" >1.699_008 DEV (MARIOROY on 2016-02-01)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.699_007/lib/MCE/Child.pm" >1.699_007 DEV (MARIOROY on 2016-01-09)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.699_005/lib/MCE/Child.pm" >1.699_005 DEV (MARIOROY on 2016-01-05)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.699_003/lib/MCE/Child.pm" >1.699_003 DEV (MARIOROY on 2016-01-03)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.699_002/lib/MCE/Child.pm" >1.699_002 DEV (MARIOROY on 2016-01-02)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.699_001/lib/MCE/Child.pm" >1.699_001 DEV (MARIOROY on 2016-01-02)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.698_001/lib/MCE/Child.pm" >1.698_001 DEV (MARIOROY on 2015-11-12)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.608/lib/MCE/Child.pm" >1.608 (MARIOROY on 2015-04-10)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.607/lib/MCE/Child.pm" >1.607 (MARIOROY on 2015-04-10)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.606/lib/MCE/Child.pm" >1.606 (MARIOROY on 2015-04-08)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.605/lib/MCE/Child.pm" >1.605 (MARIOROY on 2015-04-06)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.604/lib/MCE/Child.pm" >1.604 (MARIOROY on 2015-03-22)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.603/lib/MCE/Child.pm" >1.603 (MARIOROY on 2015-03-18)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.602/lib/MCE/Child.pm" >1.602 (MARIOROY on 2015-03-17)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.601/lib/MCE/Child.pm" >1.601 (MARIOROY on 2015-03-16)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.600/lib/MCE/Child.pm" >1.600 (MARIOROY on 2015-02-01)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.522/lib/MCE/Child.pm" >1.522 (MARIOROY on 2014-12-25)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.521/lib/MCE/Child.pm" >1.521 (MARIOROY on 2014-12-11)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.520/lib/MCE/Child.pm" >1.520 (MARIOROY on 2014-11-05)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.519/lib/MCE/Child.pm" >1.519 (MARIOROY on 2014-10-27)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.518/lib/MCE/Child.pm" >1.518 (MARIOROY on 2014-10-27)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.517/lib/MCE/Child.pm" >1.517 (MARIOROY on 2014-10-24)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.516/lib/MCE/Child.pm" >1.516 (MARIOROY on 2014-10-03)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.515/lib/MCE/Child.pm" >1.515 (MARIOROY on 2014-07-25)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.514/lib/MCE/Child.pm" >1.514 (MARIOROY on 2014-06-05)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.513/lib/MCE/Child.pm" >1.513 (MARIOROY on 2014-04-20)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.512/lib/MCE/Child.pm" >1.512 (MARIOROY on 2014-04-19)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.511/lib/MCE/Child.pm" >1.511 (MARIOROY on 2014-04-05)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.510/lib/MCE/Child.pm" >1.510 (MARIOROY on 2014-03-27)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.509/lib/MCE/Child.pm" >1.509 (MARIOROY on 2014-02-03)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.508/lib/MCE/Child.pm" >1.508 (MARIOROY on 2014-02-01)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.507/lib/MCE/Child.pm" >1.507 (MARIOROY on 2014-01-31)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.506/lib/MCE/Child.pm" >1.506 (MARIOROY on 2014-01-30)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.505/lib/MCE/Child.pm" >1.505 (MARIOROY on 2014-01-21)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.504/lib/MCE/Child.pm" >1.504 (MARIOROY on 2013-10-29)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.503/lib/MCE/Child.pm" >1.503 (MARIOROY on 2013-10-28)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.502/lib/MCE/Child.pm" >1.502 (MARIOROY on 2013-10-22)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.501/lib/MCE/Child.pm" >1.501 (MARIOROY on 2013-10-16)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.500/lib/MCE/Child.pm" >1.500 (MARIOROY on 2013-10-10)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.499_005/lib/MCE/Child.pm" >1.499_005 DEV (MARIOROY on 2013-10-05)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.499_004/lib/MCE/Child.pm" >1.499_004 DEV (MARIOROY on 2013-10-03)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.499_003/lib/MCE/Child.pm" >1.499_003 DEV (MARIOROY on 2013-10-03)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.499_002/lib/MCE/Child.pm" >1.499_002 DEV (MARIOROY on 2013-10-03)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.499_001/lib/MCE/Child.pm" >1.499_001 DEV (MARIOROY on 2013-09-23)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.415/lib/MCE/Child.pm" >1.415 (MARIOROY on 2013-06-17)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.414/lib/MCE/Child.pm" >1.414 (MARIOROY on 2013-06-16)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.413/lib/MCE/Child.pm" >1.413 (MARIOROY on 2013-06-10)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.412/lib/MCE/Child.pm" >1.412 (MARIOROY on 2013-06-09)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.411/lib/MCE/Child.pm" >1.411 (MARIOROY on 2013-06-09)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.410/lib/MCE/Child.pm" >1.410 (MARIOROY on 2013-05-29)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.409/lib/MCE/Child.pm" >1.409 (MARIOROY on 2013-05-13)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.408/lib/MCE/Child.pm" >1.408 (MARIOROY on 2013-03-20)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.407/lib/MCE/Child.pm" >1.407 (MARIOROY on 2013-03-15)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.406/lib/MCE/Child.pm" >1.406 (MARIOROY on 2013-03-13)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.405/lib/MCE/Child.pm" >1.405 (MARIOROY on 2013-03-05)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.404/lib/MCE/Child.pm" >1.404 (MARIOROY on 2013-02-24)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.403/lib/MCE/Child.pm" >1.403 (MARIOROY on 2013-02-17)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.402/lib/MCE/Child.pm" >1.402 (MARIOROY on 2013-02-14)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.401/lib/MCE/Child.pm" >1.401 (MARIOROY on 2013-02-13)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.400/lib/MCE/Child.pm" >1.400 (MARIOROY on 2013-02-11)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.306/lib/MCE/Child.pm" >1.306 (MARIOROY on 2013-01-05)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.305/lib/MCE/Child.pm" >1.305 (MARIOROY on 2013-01-05)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.304/lib/MCE/Child.pm" >1.304 (MARIOROY on 2013-01-03)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.303/lib/MCE/Child.pm" >1.303 (MARIOROY on 2013-01-02)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.302/lib/MCE/Child.pm" >1.302 (MARIOROY on 2013-01-01)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.301/lib/MCE/Child.pm" >1.301 (MARIOROY on 2012-12-31)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.300/lib/MCE/Child.pm" >1.300 (MARIOROY on 2012-12-31)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.201_004/lib/MCE/Child.pm" >1.201_004 DEV (MARIOROY on 2012-12-29)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.201_003/lib/MCE/Child.pm" >1.201_003 DEV (MARIOROY on 2012-12-28)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.201_002/lib/MCE/Child.pm" >1.201_002 DEV (MARIOROY on 2012-12-26)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.202_001/lib/MCE/Child.pm" >1.202_001 DEV (MARIOROY on 2012-12-26)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.201_001/lib/MCE/Child.pm" >1.201_001 DEV (MARIOROY on 2012-12-26)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.201/lib/MCE/Child.pm" >1.201 (MARIOROY on 2012-12-21)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.200/lib/MCE/Child.pm" >1.200 (MARIOROY on 2012-12-20)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.106/lib/MCE/Child.pm" >1.106 (MARIOROY on 2012-12-19)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.105/lib/MCE/Child.pm" >1.105 (MARIOROY on 2012-12-17)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.104/lib/MCE/Child.pm" >1.104 (MARIOROY on 2012-11-26)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.103/lib/MCE/Child.pm" >1.103 (MARIOROY on 2012-11-23)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.102/lib/MCE/Child.pm" >1.102 (MARIOROY on 2012-11-22)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.101/lib/MCE/Child.pm" >1.101 (MARIOROY on 2012-11-21)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.100/lib/MCE/Child.pm" >1.100 (MARIOROY on 2012-11-21)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.008/lib/MCE/Child.pm" >1.008 (MARIOROY on 2012-11-18)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.007/lib/MCE/Child.pm" >1.007 (MARIOROY on 2012-11-16)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.006/lib/MCE/Child.pm" >1.006 (MARIOROY on 2012-11-15)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.005/lib/MCE/Child.pm" >1.005 (MARIOROY on 2012-11-13)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.004/lib/MCE/Child.pm" >1.004 (MARIOROY on 2012-11-12)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.003/lib/MCE/Child.pm" >1.003 (MARIOROY on 2012-11-10)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.002/lib/MCE/Child.pm" >1.002 (MARIOROY on 2012-11-08)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.001/lib/MCE/Child.pm" >1.001 (MARIOROY on 2012-11-08)</option> <option value="/release/MARIOROY/MCE-1.901/diff/MARIOROY/MCE-1.000/lib/MCE/Child.pm" >1.000 (MARIOROY on 2012-11-05)</option> </optgroup> </select> </li> <li> <ul class="dependencies"> <li class="nav-header">Dependencies</li> <li><a href="/pod/Carp" title="Carp" class="ellipsis">Carp</a></li> <li><a href="/pod/Errno" title="Errno" class="ellipsis">Errno</a></li> <li><a href="/pod/Fcntl" title="Fcntl" class="ellipsis">Fcntl</a></li> <li><a href="/pod/File::Path" title="File::Path" class="ellipsis">File::Path</a></li> <li><a href="/pod/Getopt::Long" title="Getopt::Long" class="ellipsis">Getopt::Long</a></li> <li><a href="/pod/IO::Handle" title="IO::Handle" class="ellipsis">IO::Handle</a></li> <li><a href="/pod/Scalar::Util" title="Scalar::Util" class="ellipsis">Scalar::Util</a></li> <li><a href="/pod/Socket" title="Socket" class="ellipsis">Socket</a></li> <li><a href="/pod/Storable" title="Storable" class="ellipsis">Storable</a></li> <li><a href="/pod/Time::HiRes" title="Time::HiRes" class="ellipsis">Time::HiRes</a></li> <li><a href="/pod/base" title="base" class="ellipsis">base</a></li> <li><a href="/pod/bytes" title="bytes" class="ellipsis">bytes</a></li> <li><a href="/pod/constant" title="constant" class="ellipsis">constant</a></li> <li><a href="/pod/open" title="open" class="ellipsis">open</a></li> <li><a href="/pod/strict" title="strict" class="ellipsis">strict</a></li> <li><a href="/pod/warnings" title="warnings" class="ellipsis">warnings</a></li> <li> <hr> </li> <li> <a href="/module/MCE::Child/requires">Reverse dependencies</a> </li> <li> <a href="http://deps.cpantesters.org/?module=MCE%3A%3AChild">CPAN Testers List</a> </li> <li> <a href="https://cpandeps.grinnz.com/?dist=MCE">Dependency graph</a> </li> </ul> </li> <li class="nav-header">Permalinks</li> <li> <a href="/release/MARIOROY/MCE-1.901/view/lib/MCE/Child.pm">This version</a> </li> <li> <a href="/pod/MCE::Child">Latest version</a> </li> <li> <div class="plussers"> <div class="nav-header">++ed by:</div> <div> <a class="display-all" href="/author/ZMUGHAL"><img src="https://www.gravatar.com/avatar/82e7c54d334bfdfd32594d34583d32bc?d=identicon&s=20" title="ZMUGHAL" alt="ZMUGHAL"></a> <a class="display-all" href="/author/THALJEF"><img src="https://www.gravatar.com/avatar/3bc1e2a3856973ca129523e6a12dfe81?d=identicon&s=20" title="THALJEF" alt="THALJEF"></a> <a class="display-all" href="/author/JETEVE"><img src="https://www.gravatar.com/avatar/c4e14b12510fe0f58bbec64d47ed5816?d=identicon&s=20" title="JETEVE" alt="JETEVE"></a> <a class="display-all" href="/author/OLIVER"><img src="https://www.gravatar.com/avatar/faccc3f86794342524eaa1997256b3b5?d=identicon&s=20" title="OLIVER" alt="OLIVER"></a> <a class="display-all" href="/author/KES"><img src="https://www.gravatar.com/avatar/e8530f00b43b4f6a056f8ad4ee52ea47?d=identicon&s=20" title="KES" alt="KES"></a> </div> <!-- Display counts of plussers--> <div> <a href="/dist/MCE/plussers">56 PAUSE users</a> </div> <div> 56 non-PAUSE users </div> </div> </li> <li> <div> <button class="contributors-show-button btn-link">and 1 contributors</button> <div id="metacpan_contributors" class="slide-out slide-out-hidden"> <div> <ul> <li class="contributor" > Mario E. Roy <marioeroy AT gmail DOT com> </li> </ul> </div> </div> </div> </li> </ul> </div> </nav> <div class="content-navigation"> <div class="breadcrumbs"> <span> <a data-keyboard-shortcut="g a" rel="author" href="/author/MARIOROY" class="author-name">Mario Roy</a> </span> <span> / </span> <div class="release dist-release status-latest maturity-released"> <span class="dropdown"><b class="caret"></b></span> <select class="select-navigator "> <option selected value="/release/MARIOROY/MCE-1.901/view/lib/MCE/Child.pm" >1.901 (MARIOROY on 2025-01-02)</option> <option value="/release/MARIOROY/MCE-1.900/view/lib/MCE/Child.pm" >1.900 (MARIOROY on 2024-09-10)</option> <option value="/release/MARIOROY/MCE-1.889/view/lib/MCE/Child.pm" >1.889 (MARIOROY on 2023-09-13)</option> <option value="/release/MARIOROY/MCE-1.838/view/lib/MCE/Child.pm" >1.838 (MARIOROY on 2019-01-23)</option> <optgroup label="BackPAN">' <option value="/release/MARIOROY/MCE-1.899/view/lib/MCE/Child.pm" >1.899 (MARIOROY on 2024-09-06)</option> <option value="/release/MARIOROY/MCE-1.898/view/lib/MCE/Child.pm" >1.898 (MARIOROY on 2024-08-21)</option> <option value="/release/MARIOROY/MCE-1.897/view/lib/MCE/Child.pm" >1.897 (MARIOROY on 2024-06-20)</option> <option value="/release/MARIOROY/MCE-1.896/view/lib/MCE/Child.pm" >1.896 (MARIOROY on 2024-06-11)</option> <option value="/release/MARIOROY/MCE-1.895/view/lib/MCE/Child.pm" >1.895 (MARIOROY on 2024-06-10)</option> <option value="/release/MARIOROY/MCE-1.894/view/lib/MCE/Child.pm" >1.894 (MARIOROY on 2024-06-09)</option> <option value="/release/MARIOROY/MCE-1.893/view/lib/MCE/Child.pm" >1.893 (MARIOROY on 2024-06-08)</option> <option value="/release/MARIOROY/MCE-1.892/view/lib/MCE/Child.pm" >1.892 (MARIOROY on 2024-06-08)</option> <option value="/release/MARIOROY/MCE-1.891/view/lib/MCE/Child.pm" >1.891 (MARIOROY on 2024-06-06)</option> <option value="/release/MARIOROY/MCE-1.890/view/lib/MCE/Child.pm" >1.890 (MARIOROY on 2024-05-24)</option> <option value="/release/MARIOROY/MCE-1.888/view/lib/MCE/Child.pm" >1.888 (MARIOROY on 2023-06-21)</option> <option value="/release/MARIOROY/MCE-1.887/view/lib/MCE/Child.pm" >1.887 (MARIOROY on 2023-06-09)</option> <option value="/release/MARIOROY/MCE-1.886/view/lib/MCE/Child.pm" >1.886 (MARIOROY on 2023-06-06)</option> <option value="/release/MARIOROY/MCE-1.885/view/lib/MCE/Child.pm" >1.885 (MARIOROY on 2023-05-31)</option> <option value="/release/MARIOROY/MCE-1.884/view/lib/MCE/Child.pm" >1.884 (MARIOROY on 2023-01-05)</option> <option value="/release/MARIOROY/MCE-1.883/view/lib/MCE/Child.pm" >1.883 (MARIOROY on 2023-01-04)</option> <option value="/release/MARIOROY/MCE-1.882/view/lib/MCE/Child.pm" >1.882 (MARIOROY on 2022-12-03)</option> <option value="/release/MARIOROY/MCE-1.881/view/lib/MCE/Child.pm" >1.881 (MARIOROY on 2022-10-14)</option> <option value="/release/MARIOROY/MCE-1.880/view/lib/MCE/Child.pm" >1.880 (MARIOROY on 2022-10-10)</option> <option value="/release/MARIOROY/MCE-1.879/view/lib/MCE/Child.pm" >1.879 (MARIOROY on 2022-05-24)</option> <option value="/release/MARIOROY/MCE-1.878/view/lib/MCE/Child.pm" >1.878 (MARIOROY on 2022-02-20)</option> <option value="/release/MARIOROY/MCE-1.877/view/lib/MCE/Child.pm" >1.877 (MARIOROY on 2022-02-20)</option> <option value="/release/MARIOROY/MCE-1.876/view/lib/MCE/Child.pm" >1.876 (MARIOROY on 2021-12-02)</option> <option value="/release/MARIOROY/MCE-1.875/view/lib/MCE/Child.pm" >1.875 (MARIOROY on 2021-11-16)</option> <option value="/release/MARIOROY/MCE-1.874/view/lib/MCE/Child.pm" >1.874 (MARIOROY on 2020-08-18)</option> <option value="/release/MARIOROY/MCE-1.873/view/lib/MCE/Child.pm" >1.873 (MARIOROY on 2020-08-01)</option> <option value="/release/MARIOROY/MCE-1.872/view/lib/MCE/Child.pm" >1.872 (MARIOROY on 2020-06-15)</option> <option value="/release/MARIOROY/MCE-1.868/view/lib/MCE/Child.pm" >1.868 (MARIOROY on 2020-05-11)</option> <option value="/release/MARIOROY/MCE-1.867_01/view/lib/MCE/Child.pm" >1.867_01 DEV (MARIOROY on 2020-05-04)</option> <option value="/release/MARIOROY/MCE-1.867/view/lib/MCE/Child.pm" >1.867 (MARIOROY on 2020-05-04)</option> <option value="/release/MARIOROY/MCE-1.866/view/lib/MCE/Child.pm" >1.866 (MARIOROY on 2020-02-09)</option> <option value="/release/MARIOROY/MCE-1.865/view/lib/MCE/Child.pm" >1.865 (MARIOROY on 2019-12-26)</option> <option value="/release/MARIOROY/MCE-1.864/view/lib/MCE/Child.pm" >1.864 (MARIOROY on 2019-12-04)</option> <option value="/release/MARIOROY/MCE-1.863/view/lib/MCE/Child.pm" >1.863 (MARIOROY on 2019-11-25)</option> <option value="/release/MARIOROY/MCE-1.862/view/lib/MCE/Child.pm" >1.862 (MARIOROY on 2019-09-19)</option> <option value="/release/MARIOROY/MCE-1.861/view/lib/MCE/Child.pm" >1.861 (MARIOROY on 2019-09-18)</option> <option value="/release/MARIOROY/MCE-1.860/view/lib/MCE/Child.pm" >1.860 (MARIOROY on 2019-09-16)</option> <option value="/release/MARIOROY/MCE-1.850/view/lib/MCE/Child.pm" >1.850 (MARIOROY on 2019-09-09)</option> <option value="/release/MARIOROY/MCE-1.849/view/lib/MCE/Child.pm" >1.849 (MARIOROY on 2019-09-09)</option> <option value="/release/MARIOROY/MCE-1.848/view/lib/MCE/Child.pm" >1.848 (MARIOROY on 2019-09-04)</option> <option value="/release/MARIOROY/MCE-1.847/view/lib/MCE/Child.pm" >1.847 (MARIOROY on 2019-09-03)</option> <option value="/release/MARIOROY/MCE-1.846/view/lib/MCE/Child.pm" >1.846 (MARIOROY on 2019-08-27)</option> <option value="/release/MARIOROY/MCE-1.845/view/lib/MCE/Child.pm" >1.845 (MARIOROY on 2019-08-26)</option> <option value="/release/MARIOROY/MCE-1.844/view/lib/MCE/Child.pm" >1.844 (MARIOROY on 2019-08-15)</option> <option value="/release/MARIOROY/MCE-1.843/view/lib/MCE/Child.pm" >1.843 (MARIOROY on 2019-07-24)</option> <option value="/release/MARIOROY/MCE-1.842/view/lib/MCE/Child.pm" >1.842 (MARIOROY on 2019-07-22)</option> <option value="/release/MARIOROY/MCE-1.841/view/lib/MCE/Child.pm" >1.841 (MARIOROY on 2019-07-08)</option> <option value="/release/MARIOROY/MCE-1.840/view/lib/MCE/Child.pm" >1.840 (MARIOROY on 2019-07-07)</option> <option value="/release/MARIOROY/MCE-1.839/view/lib/MCE/Child.pm" >1.839 (MARIOROY on 2019-07-07)</option> <option value="/release/MARIOROY/MCE-1.837/view/lib/MCE/Child.pm" >1.837 (MARIOROY on 2018-08-25)</option> <option value="/release/MARIOROY/MCE-1.836/view/lib/MCE/Child.pm" >1.836 (MARIOROY on 2018-06-25)</option> <option value="/release/MARIOROY/MCE-1.835/view/lib/MCE/Child.pm" >1.835 (MARIOROY on 2018-03-13)</option> <option value="/release/MARIOROY/MCE-1.834/view/lib/MCE/Child.pm" >1.834 (MARIOROY on 2018-01-23)</option> <option value="/release/MARIOROY/MCE-1.833/view/lib/MCE/Child.pm" >1.833 (MARIOROY on 2017-12-28)</option> <option value="/release/MARIOROY/MCE-1.832/view/lib/MCE/Child.pm" >1.832 (MARIOROY on 2017-11-21)</option> <option value="/release/MARIOROY/MCE-1.831/view/lib/MCE/Child.pm" >1.831 (MARIOROY on 2017-10-09)</option> <option value="/release/MARIOROY/MCE-1.830/view/lib/MCE/Child.pm" >1.830 (MARIOROY on 2017-09-12)</option> <option value="/release/MARIOROY/MCE-1.829/view/lib/MCE/Child.pm" >1.829 (MARIOROY on 2017-05-03)</option> <option value="/release/MARIOROY/MCE-1.828/view/lib/MCE/Child.pm" >1.828 (MARIOROY on 2017-04-28)</option> <option value="/release/MARIOROY/MCE-1.827/view/lib/MCE/Child.pm" >1.827 (MARIOROY on 2017-04-05)</option> <option value="/release/MARIOROY/MCE-1.826/view/lib/MCE/Child.pm" >1.826 (MARIOROY on 2017-04-03)</option> <option value="/release/MARIOROY/MCE-1.825/view/lib/MCE/Child.pm" >1.825 (MARIOROY on 2017-04-02)</option> <option value="/release/MARIOROY/MCE-1.824/view/lib/MCE/Child.pm" >1.824 (MARIOROY on 2017-04-01)</option> <option value="/release/MARIOROY/MCE-1.823/view/lib/MCE/Child.pm" >1.823 (MARIOROY on 2017-04-01)</option> <option value="/release/MARIOROY/MCE-1.822/view/lib/MCE/Child.pm" >1.822 (MARIOROY on 2017-03-31)</option> <option value="/release/MARIOROY/MCE-1.821/view/lib/MCE/Child.pm" >1.821 (MARIOROY on 2017-03-19)</option> <option value="/release/MARIOROY/MCE-1.820/view/lib/MCE/Child.pm" >1.820 (MARIOROY on 2017-03-09)</option> <option value="/release/MARIOROY/MCE-1.819/view/lib/MCE/Child.pm" >1.819 (MARIOROY on 2017-03-04)</option> <option value="/release/MARIOROY/MCE-1.818/view/lib/MCE/Child.pm" >1.818 (MARIOROY on 2017-03-02)</option> <option value="/release/MARIOROY/MCE-1.817/view/lib/MCE/Child.pm" >1.817 (MARIOROY on 2017-02-25)</option> <option value="/release/MARIOROY/MCE-1.816/view/lib/MCE/Child.pm" >1.816 (MARIOROY on 2017-02-25)</option> <option value="/release/MARIOROY/MCE-1.815/view/lib/MCE/Child.pm" >1.815 (MARIOROY on 2017-02-24)</option> <option value="/release/MARIOROY/MCE-1.814/view/lib/MCE/Child.pm" >1.814 (MARIOROY on 2017-02-20)</option> <option value="/release/MARIOROY/MCE-1.813/view/lib/MCE/Child.pm" >1.813 (MARIOROY on 2017-02-16)</option> <option value="/release/MARIOROY/MCE-1.812/view/lib/MCE/Child.pm" >1.812 (MARIOROY on 2017-02-14)</option> <option value="/release/MARIOROY/MCE-1.811/view/lib/MCE/Child.pm" >1.811 (MARIOROY on 2017-02-14)</option> <option value="/release/MARIOROY/MCE-1.810/view/lib/MCE/Child.pm" >1.810 (MARIOROY on 2016-12-10)</option> <option value="/release/MARIOROY/MCE-1.809/view/lib/MCE/Child.pm" >1.809 (MARIOROY on 2016-11-23)</option> <option value="/release/MARIOROY/MCE-1.808/view/lib/MCE/Child.pm" >1.808 (MARIOROY on 2016-11-05)</option> <option value="/release/MARIOROY/MCE-1.807/view/lib/MCE/Child.pm" >1.807 (MARIOROY on 2016-11-01)</option> <option value="/release/MARIOROY/MCE-1.806/view/lib/MCE/Child.pm" >1.806 (MARIOROY on 2016-10-12)</option> <option value="/release/MARIOROY/MCE-1.805/view/lib/MCE/Child.pm" >1.805 (MARIOROY on 2016-09-01)</option> <option value="/release/MARIOROY/MCE-1.804/view/lib/MCE/Child.pm" >1.804 (MARIOROY on 2016-07-29)</option> <option value="/release/MARIOROY/MCE-1.803/view/lib/MCE/Child.pm" >1.803 (MARIOROY on 2016-07-11)</option> <option value="/release/MARIOROY/MCE-1.802/view/lib/MCE/Child.pm" >1.802 (MARIOROY on 2016-07-04)</option> <option value="/release/MARIOROY/MCE-1.801/view/lib/MCE/Child.pm" >1.801 (MARIOROY on 2016-07-03)</option> <option value="/release/MARIOROY/MCE-1.800/view/lib/MCE/Child.pm" >1.800 (MARIOROY on 2016-06-18)</option> <option value="/release/MARIOROY/MCE-1.799_03/view/lib/MCE/Child.pm" >1.799_03 DEV (MARIOROY on 2016-06-18)</option> <option value="/release/MARIOROY/MCE-1.799_02/view/lib/MCE/Child.pm" >1.799_02 DEV (MARIOROY on 2016-06-17)</option> <option value="/release/MARIOROY/MCE-1.799_01/view/lib/MCE/Child.pm" >1.799_01 DEV (MARIOROY on 2016-06-15)</option> <option value="/release/MARIOROY/MCE-1.708/view/lib/MCE/Child.pm" >1.708 (MARIOROY on 2016-05-28)</option> <option value="/release/MARIOROY/MCE-1.707/view/lib/MCE/Child.pm" >1.707 (MARIOROY on 2016-05-25)</option> <option value="/release/MARIOROY/MCE-1.706/view/lib/MCE/Child.pm" >1.706 (MARIOROY on 2016-04-23)</option> <option value="/release/MARIOROY/MCE-1.705/view/lib/MCE/Child.pm" >1.705 (MARIOROY on 2016-04-14)</option> <option value="/release/MARIOROY/MCE-1.704/view/lib/MCE/Child.pm" >1.704 (MARIOROY on 2016-04-14)</option> <option value="/release/MARIOROY/MCE-1.703/view/lib/MCE/Child.pm" >1.703 (MARIOROY on 2016-03-20)</option> <option value="/release/MARIOROY/MCE-1.702/view/lib/MCE/Child.pm" >1.702 (MARIOROY on 2016-03-15)</option> <option value="/release/MARIOROY/MCE-1.701/view/lib/MCE/Child.pm" >1.701 (MARIOROY on 2016-03-15)</option> <option value="/release/MARIOROY/MCE-1.700/view/lib/MCE/Child.pm" >1.700 (MARIOROY on 2016-03-08)</option> <option value="/release/MARIOROY/MCE-1.699_013/view/lib/MCE/Child.pm" >1.699_013 DEV (MARIOROY on 2016-03-07)</option> <option value="/release/MARIOROY/MCE-1.699_012/view/lib/MCE/Child.pm" >1.699_012 DEV (MARIOROY on 2016-03-04)</option> <option value="/release/MARIOROY/MCE-1.699_011/view/lib/MCE/Child.pm" >1.699_011 DEV (MARIOROY on 2016-03-02)</option> <option value="/release/MARIOROY/MCE-1.699_010/view/lib/MCE/Child.pm" >1.699_010 DEV (MARIOROY on 2016-02-09)</option> <option value="/release/MARIOROY/MCE-1.699_009/view/lib/MCE/Child.pm" >1.699_009 DEV (MARIOROY on 2016-02-03)</option> <option value="/release/MARIOROY/MCE-1.699_008/view/lib/MCE/Child.pm" >1.699_008 DEV (MARIOROY on 2016-02-01)</option> <option value="/release/MARIOROY/MCE-1.699_007/view/lib/MCE/Child.pm" >1.699_007 DEV (MARIOROY on 2016-01-09)</option> <option value="/release/MARIOROY/MCE-1.699_005/view/lib/MCE/Child.pm" >1.699_005 DEV (MARIOROY on 2016-01-05)</option> <option value="/release/MARIOROY/MCE-1.699_003/view/lib/MCE/Child.pm" >1.699_003 DEV (MARIOROY on 2016-01-03)</option> <option value="/release/MARIOROY/MCE-1.699_002/view/lib/MCE/Child.pm" >1.699_002 DEV (MARIOROY on 2016-01-02)</option> <option value="/release/MARIOROY/MCE-1.699_001/view/lib/MCE/Child.pm" >1.699_001 DEV (MARIOROY on 2016-01-02)</option> <option value="/release/MARIOROY/MCE-1.698_001/view/lib/MCE/Child.pm" >1.698_001 DEV (MARIOROY on 2015-11-12)</option> <option value="/release/MARIOROY/MCE-1.608/view/lib/MCE/Child.pm" >1.608 (MARIOROY on 2015-04-10)</option> <option value="/release/MARIOROY/MCE-1.607/view/lib/MCE/Child.pm" >1.607 (MARIOROY on 2015-04-10)</option> <option value="/release/MARIOROY/MCE-1.606/view/lib/MCE/Child.pm" >1.606 (MARIOROY on 2015-04-08)</option> <option value="/release/MARIOROY/MCE-1.605/view/lib/MCE/Child.pm" >1.605 (MARIOROY on 2015-04-06)</option> <option value="/release/MARIOROY/MCE-1.604/view/lib/MCE/Child.pm" >1.604 (MARIOROY on 2015-03-22)</option> <option value="/release/MARIOROY/MCE-1.603/view/lib/MCE/Child.pm" >1.603 (MARIOROY on 2015-03-18)</option> <option value="/release/MARIOROY/MCE-1.602/view/lib/MCE/Child.pm" >1.602 (MARIOROY on 2015-03-17)</option> <option value="/release/MARIOROY/MCE-1.601/view/lib/MCE/Child.pm" >1.601 (MARIOROY on 2015-03-16)</option> <option value="/release/MARIOROY/MCE-1.600/view/lib/MCE/Child.pm" >1.600 (MARIOROY on 2015-02-01)</option> <option value="/release/MARIOROY/MCE-1.522/view/lib/MCE/Child.pm" >1.522 (MARIOROY on 2014-12-25)</option> <option value="/release/MARIOROY/MCE-1.521/view/lib/MCE/Child.pm" >1.521 (MARIOROY on 2014-12-11)</option> <option value="/release/MARIOROY/MCE-1.520/view/lib/MCE/Child.pm" >1.520 (MARIOROY on 2014-11-05)</option> <option value="/release/MARIOROY/MCE-1.519/view/lib/MCE/Child.pm" >1.519 (MARIOROY on 2014-10-27)</option> <option value="/release/MARIOROY/MCE-1.518/view/lib/MCE/Child.pm" >1.518 (MARIOROY on 2014-10-27)</option> <option value="/release/MARIOROY/MCE-1.517/view/lib/MCE/Child.pm" >1.517 (MARIOROY on 2014-10-24)</option> <option value="/release/MARIOROY/MCE-1.516/view/lib/MCE/Child.pm" >1.516 (MARIOROY on 2014-10-03)</option> <option value="/release/MARIOROY/MCE-1.515/view/lib/MCE/Child.pm" >1.515 (MARIOROY on 2014-07-25)</option> <option value="/release/MARIOROY/MCE-1.514/view/lib/MCE/Child.pm" >1.514 (MARIOROY on 2014-06-05)</option> <option value="/release/MARIOROY/MCE-1.513/view/lib/MCE/Child.pm" >1.513 (MARIOROY on 2014-04-20)</option> <option value="/release/MARIOROY/MCE-1.512/view/lib/MCE/Child.pm" >1.512 (MARIOROY on 2014-04-19)</option> <option value="/release/MARIOROY/MCE-1.511/view/lib/MCE/Child.pm" >1.511 (MARIOROY on 2014-04-05)</option> <option value="/release/MARIOROY/MCE-1.510/view/lib/MCE/Child.pm" >1.510 (MARIOROY on 2014-03-27)</option> <option value="/release/MARIOROY/MCE-1.509/view/lib/MCE/Child.pm" >1.509 (MARIOROY on 2014-02-03)</option> <option value="/release/MARIOROY/MCE-1.508/view/lib/MCE/Child.pm" >1.508 (MARIOROY on 2014-02-01)</option> <option value="/release/MARIOROY/MCE-1.507/view/lib/MCE/Child.pm" >1.507 (MARIOROY on 2014-01-31)</option> <option value="/release/MARIOROY/MCE-1.506/view/lib/MCE/Child.pm" >1.506 (MARIOROY on 2014-01-30)</option> <option value="/release/MARIOROY/MCE-1.505/view/lib/MCE/Child.pm" >1.505 (MARIOROY on 2014-01-21)</option> <option value="/release/MARIOROY/MCE-1.504/view/lib/MCE/Child.pm" >1.504 (MARIOROY on 2013-10-29)</option> <option value="/release/MARIOROY/MCE-1.503/view/lib/MCE/Child.pm" >1.503 (MARIOROY on 2013-10-28)</option> <option value="/release/MARIOROY/MCE-1.502/view/lib/MCE/Child.pm" >1.502 (MARIOROY on 2013-10-22)</option> <option value="/release/MARIOROY/MCE-1.501/view/lib/MCE/Child.pm" >1.501 (MARIOROY on 2013-10-16)</option> <option value="/release/MARIOROY/MCE-1.500/view/lib/MCE/Child.pm" >1.500 (MARIOROY on 2013-10-10)</option> <option value="/release/MARIOROY/MCE-1.499_005/view/lib/MCE/Child.pm" >1.499_005 DEV (MARIOROY on 2013-10-05)</option> <option value="/release/MARIOROY/MCE-1.499_004/view/lib/MCE/Child.pm" >1.499_004 DEV (MARIOROY on 2013-10-03)</option> <option value="/release/MARIOROY/MCE-1.499_003/view/lib/MCE/Child.pm" >1.499_003 DEV (MARIOROY on 2013-10-03)</option> <option value="/release/MARIOROY/MCE-1.499_002/view/lib/MCE/Child.pm" >1.499_002 DEV (MARIOROY on 2013-10-03)</option> <option value="/release/MARIOROY/MCE-1.499_001/view/lib/MCE/Child.pm" >1.499_001 DEV (MARIOROY on 2013-09-23)</option> <option value="/release/MARIOROY/MCE-1.415/view/lib/MCE/Child.pm" >1.415 (MARIOROY on 2013-06-17)</option> <option value="/release/MARIOROY/MCE-1.414/view/lib/MCE/Child.pm" >1.414 (MARIOROY on 2013-06-16)</option> <option value="/release/MARIOROY/MCE-1.413/view/lib/MCE/Child.pm" >1.413 (MARIOROY on 2013-06-10)</option> <option value="/release/MARIOROY/MCE-1.412/view/lib/MCE/Child.pm" >1.412 (MARIOROY on 2013-06-09)</option> <option value="/release/MARIOROY/MCE-1.411/view/lib/MCE/Child.pm" >1.411 (MARIOROY on 2013-06-09)</option> <option value="/release/MARIOROY/MCE-1.410/view/lib/MCE/Child.pm" >1.410 (MARIOROY on 2013-05-29)</option> <option value="/release/MARIOROY/MCE-1.409/view/lib/MCE/Child.pm" >1.409 (MARIOROY on 2013-05-13)</option> <option value="/release/MARIOROY/MCE-1.408/view/lib/MCE/Child.pm" >1.408 (MARIOROY on 2013-03-20)</option> <option value="/release/MARIOROY/MCE-1.407/view/lib/MCE/Child.pm" >1.407 (MARIOROY on 2013-03-15)</option> <option value="/release/MARIOROY/MCE-1.406/view/lib/MCE/Child.pm" >1.406 (MARIOROY on 2013-03-13)</option> <option value="/release/MARIOROY/MCE-1.405/view/lib/MCE/Child.pm" >1.405 (MARIOROY on 2013-03-05)</option> <option value="/release/MARIOROY/MCE-1.404/view/lib/MCE/Child.pm" >1.404 (MARIOROY on 2013-02-24)</option> <option value="/release/MARIOROY/MCE-1.403/view/lib/MCE/Child.pm" >1.403 (MARIOROY on 2013-02-17)</option> <option value="/release/MARIOROY/MCE-1.402/view/lib/MCE/Child.pm" >1.402 (MARIOROY on 2013-02-14)</option> <option value="/release/MARIOROY/MCE-1.401/view/lib/MCE/Child.pm" >1.401 (MARIOROY on 2013-02-13)</option> <option value="/release/MARIOROY/MCE-1.400/view/lib/MCE/Child.pm" >1.400 (MARIOROY on 2013-02-11)</option> <option value="/release/MARIOROY/MCE-1.306/view/lib/MCE/Child.pm" >1.306 (MARIOROY on 2013-01-05)</option> <option value="/release/MARIOROY/MCE-1.305/view/lib/MCE/Child.pm" >1.305 (MARIOROY on 2013-01-05)</option> <option value="/release/MARIOROY/MCE-1.304/view/lib/MCE/Child.pm" >1.304 (MARIOROY on 2013-01-03)</option> <option value="/release/MARIOROY/MCE-1.303/view/lib/MCE/Child.pm" >1.303 (MARIOROY on 2013-01-02)</option> <option value="/release/MARIOROY/MCE-1.302/view/lib/MCE/Child.pm" >1.302 (MARIOROY on 2013-01-01)</option> <option value="/release/MARIOROY/MCE-1.301/view/lib/MCE/Child.pm" >1.301 (MARIOROY on 2012-12-31)</option> <option value="/release/MARIOROY/MCE-1.300/view/lib/MCE/Child.pm" >1.300 (MARIOROY on 2012-12-31)</option> <option value="/release/MARIOROY/MCE-1.201_004/view/lib/MCE/Child.pm" >1.201_004 DEV (MARIOROY on 2012-12-29)</option> <option value="/release/MARIOROY/MCE-1.201_003/view/lib/MCE/Child.pm" >1.201_003 DEV (MARIOROY on 2012-12-28)</option> <option value="/release/MARIOROY/MCE-1.201_002/view/lib/MCE/Child.pm" >1.201_002 DEV (MARIOROY on 2012-12-26)</option> <option value="/release/MARIOROY/MCE-1.202_001/view/lib/MCE/Child.pm" >1.202_001 DEV (MARIOROY on 2012-12-26)</option> <option value="/release/MARIOROY/MCE-1.201_001/view/lib/MCE/Child.pm" >1.201_001 DEV (MARIOROY on 2012-12-26)</option> <option value="/release/MARIOROY/MCE-1.201/view/lib/MCE/Child.pm" >1.201 (MARIOROY on 2012-12-21)</option> <option value="/release/MARIOROY/MCE-1.200/view/lib/MCE/Child.pm" >1.200 (MARIOROY on 2012-12-20)</option> <option value="/release/MARIOROY/MCE-1.106/view/lib/MCE/Child.pm" >1.106 (MARIOROY on 2012-12-19)</option> <option value="/release/MARIOROY/MCE-1.105/view/lib/MCE/Child.pm" >1.105 (MARIOROY on 2012-12-17)</option> <option value="/release/MARIOROY/MCE-1.104/view/lib/MCE/Child.pm" >1.104 (MARIOROY on 2012-11-26)</option> <option value="/release/MARIOROY/MCE-1.103/view/lib/MCE/Child.pm" >1.103 (MARIOROY on 2012-11-23)</option> <option value="/release/MARIOROY/MCE-1.102/view/lib/MCE/Child.pm" >1.102 (MARIOROY on 2012-11-22)</option> <option value="/release/MARIOROY/MCE-1.101/view/lib/MCE/Child.pm" >1.101 (MARIOROY on 2012-11-21)</option> <option value="/release/MARIOROY/MCE-1.100/view/lib/MCE/Child.pm" >1.100 (MARIOROY on 2012-11-21)</option> <option value="/release/MARIOROY/MCE-1.008/view/lib/MCE/Child.pm" >1.008 (MARIOROY on 2012-11-18)</option> <option value="/release/MARIOROY/MCE-1.007/view/lib/MCE/Child.pm" >1.007 (MARIOROY on 2012-11-16)</option> <option value="/release/MARIOROY/MCE-1.006/view/lib/MCE/Child.pm" >1.006 (MARIOROY on 2012-11-15)</option> <option value="/release/MARIOROY/MCE-1.005/view/lib/MCE/Child.pm" >1.005 (MARIOROY on 2012-11-13)</option> <option value="/release/MARIOROY/MCE-1.004/view/lib/MCE/Child.pm" >1.004 (MARIOROY on 2012-11-12)</option> <option value="/release/MARIOROY/MCE-1.003/view/lib/MCE/Child.pm" >1.003 (MARIOROY on 2012-11-10)</option> <option value="/release/MARIOROY/MCE-1.002/view/lib/MCE/Child.pm" >1.002 (MARIOROY on 2012-11-08)</option> <option value="/release/MARIOROY/MCE-1.001/view/lib/MCE/Child.pm" >1.001 (MARIOROY on 2012-11-08)</option> <option value="/release/MARIOROY/MCE-1.000/view/lib/MCE/Child.pm" >1.000 (MARIOROY on 2012-11-05)</option> </optgroup> </select> <a data-keyboard-shortcut="g d" class="release-name" href="/dist/MCE">MCE-1.901</a> </div> <span class="river-gauge-gauge"> <svg width="24px" height="15px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g> <title> River stage three • 22 direct dependents • 287 total dependents </title> <rect x="0" y="0" width="4" height="15" fill="#7ea3f2" /> <rect x="5" y="0" width="4" height="15" fill="#7ea3f2" /> <rect x="10" y="0" width="4" height="15" fill="#7ea3f2" /> <rect x="15" y="0" width="4" height="15" fill="#e4e2e2" /> <rect x="20" y="0" width="4" height="15" fill="#e4e2e2" /> </g> </svg> </span> <div id="MCE-fav" class="show-logged-in"> <form action="/account/favorite/add" style="display: inline" method="POST"> <input type="hidden" name="remove" value="0"> <input type="hidden" name="release" value="MCE-1.901"> <input type="hidden" name="author" value="MARIOROY"> <input type="hidden" name="distribution" value="MCE"> <button type="submit" class="favorite highlight"><span>112</span> ++</button> </form> </div> <div class="show-logged-out"> <button class="fav-not-logged-in favorite highlight"><span>112</span> ++</button> </div> / <span>MCE::Child</span> </div> </div> <main class="content"> <nav class="toc"> <div class="toc-header"><strong>Contents</strong></div> <ul> <li><a href="#NAME">NAME</a></li> <li><a href="#VERSION">VERSION</a></li> <li><a href="#SYNOPSIS">SYNOPSIS</a></li> <li><a href="#DESCRIPTION">DESCRIPTION</a></li> <li><a href="#API-DOCUMENTATION">API DOCUMENTATION</a></li> <li><a href="#THREADS-like-DETACH-CAPABILITY">THREADS-like DETACH CAPABILITY</a></li> <li><a href="#PARALLEL%3A%3AFORKMANAGER-like-DEMONSTRATION">PARALLEL::FORKMANAGER-like DEMONSTRATION</a></li> <li><a href="#PARALLEL-HTTP-GET-DEMONSTRATION-USING-ANYEVENT">PARALLEL HTTP GET DEMONSTRATION USING ANYEVENT</a></li> <li><a href="#CROSS-PLATFORM-TEMPLATE-FOR-BINARY-EXECUTABLE">CROSS-PLATFORM TEMPLATE FOR BINARY EXECUTABLE</a></li> <li><a href="#LIMITATION">LIMITATION</a></li> <li><a href="#CREDITS">CREDITS</a></li> <li><a href="#SEE-ALSO">SEE ALSO</a></li> <li><a href="#INDEX">INDEX</a></li> <li><a href="#AUTHOR">AUTHOR</a></li> </ul></nav> <div class="pod anchors"> <h1 id="NAME">NAME</h1> <p>MCE::Child - A threads-like parallelization module compatible with Perl 5.8</p> <h1 id="VERSION">VERSION</h1> <p>This document describes MCE::Child version 1.901</p> <h1 id="SYNOPSIS">SYNOPSIS</h1> <pre><code>use MCE::Child; MCE::Child->init( max_workers => 'auto', # default undef, unlimited # Specify a percentage. MCE::Child 1.876+. max_workers => '25%', # 4 on HW with 16 lcores max_workers => '50%', # 8 on HW with 16 lcores child_timeout => 20, # default undef, no timeout posix_exit => 1, # default undef, CORE::exit void_context => 1, # default undef on_start => sub { my ( $pid, $ident ) = @_; ... }, on_finish => sub { my ( $pid, $exit, $ident, $signal, $error, @ret ) = @_; ... } ); MCE::Child->create( sub { print "Hello from child\n" } )->join(); sub parallel { my ($arg1) = @_; print "Hello again, $arg1\n" if defined($arg1); print "Hello again, $_\n"; # same thing } MCE::Child->create( \&parallel, $_ ) for 1 .. 3; my @procs = MCE::Child->list(); my @pids = MCE::Child->list_pids(); my @running = MCE::Child->list_running(); my @joinable = MCE::Child->list_joinable(); my @count = MCE::Child->pending(); # Joining is orderly, e.g. child1 is joined first, child2, child3. $_->join() for @procs; # (or) $_->join() for @joinable; # Joining occurs immediately as child processes complete execution. 1 while MCE::Child->wait_one(); my $child = mce_child { foreach (@files) { ... } }; $child->join(); if ( my $err = $child->error() ) { warn "Child error: $err\n"; } # Get a child's object $child = MCE::Child->self(); # Get a child's ID $pid = MCE::Child->pid(); # $$ $pid = $child->pid(); $pid = MCE::Child->tid(); # tid is an alias for pid $pid = $child->tid(); # Test child objects if ( $child1 == $child2 ) { ... } # Give other workers a chance to run MCE::Child->yield(); MCE::Child->yield(0.05); # Return context, wantarray aware my ($value1, $value2) = $child->join(); my $value = $child->join(); # Check child's state if ( $child->is_running() ) { sleep 1; } if ( $child->is_joinable() ) { $child->join(); } # Send a signal to a child $child->kill('SIGUSR1'); # Exit a child MCE::Child->exit(0); MCE::Child->exit(0, @ret);</code></pre> <h1 id="DESCRIPTION">DESCRIPTION</h1> <p><a href="/pod/MCE::Child">MCE::Child</a> is a fork of <a href="/pod/MCE::Hobo">MCE::Hobo</a> for compatibility with Perl 5.8.</p> <p>A child is a migratory worker inside the machine that carries the asynchronous gene. Child processes are equipped with <code>threads</code>-like capability for running code asynchronously. Unlike threads, each child is a unique process to the underlying OS. The IPC is handled via <code>MCE::Channel</code>, which runs on all the major platforms including Cygwin and Strawberry Perl.</p> <p><code>MCE::Child</code> may be used as a standalone or together with <code>MCE</code> including running alongside <code>threads</code>.</p> <pre><code>use MCE::Child; use MCE::Shared; # synopsis: head -20 file.txt | perl script.pl my $ifh = MCE::Shared->handle( "<", \*STDIN ); # shared my $ofh = MCE::Shared->handle( ">", \*STDOUT ); my $ary = MCE::Shared->array(); sub parallel_task { my ( $id ) = @_; while ( <$ifh> ) { printf {$ofh} "[ %4d ] %s", $., $_; # $ary->[ $. - 1 ] = "[ ID $id ] read line $.\n" ); # dereferencing $ary->set( $. - 1, "[ ID $id ] read line $.\n" ); # faster via OO } } my $child1 = MCE::Child->new( "parallel_task", 1 ); my $child2 = MCE::Child->new( \&parallel_task, 2 ); my $child3 = MCE::Child->new( sub { parallel_task(3) } ); $_->join for MCE::Child->list(); # ditto: MCE::Child->wait_all(); # search array (total one round-trip via IPC) my @vals = $ary->vals( "val =~ / ID 2 /" ); print {*STDERR} join("", @vals);</code></pre> <h1 id="API-DOCUMENTATION"><a id="API"></a>API DOCUMENTATION</h1> <dl> <dt id="$child-=-MCE::Child->create(-FUNCTION,-ARGS-)"><a id="child-MCE::Child-create-FUNCTION-ARGS"></a>$child = MCE::Child->create( FUNCTION, ARGS )</dt> <dd> </dd> <dt id="$child-=-MCE::Child->new(-FUNCTION,-ARGS-)"><a id="child-MCE::Child-new-FUNCTION-ARGS"></a>$child = MCE::Child->new( FUNCTION, ARGS )</dt> <dd> <p>This will create a new child process that will begin execution with function as the entry point, and optionally ARGS for list of parameters. It will return the corresponding MCE::Child object, or undef if child creation failed.</p> <p><i>FUNCTION</i> may either be the name of a function, an anonymous subroutine, or a code ref.</p> <pre><code>my $child = MCE::Child->create( "func_name", ... ); # or my $child = MCE::Child->create( sub { ... }, ... ); # or my $child = MCE::Child->create( \&func, ... );</code></pre> </dd> <dt id="$child-=-MCE::Child->create(-{-options-},-FUNCTION,-ARGS-)"><a id="child-MCE::Child-create-options-FUNCTION-ARGS"></a>$child = MCE::Child->create( { options }, FUNCTION, ARGS )</dt> <dd> </dd> <dt id="$child-=-MCE::Child->create(-IDENT,-FUNCTION,-ARGS-)"><a id="child-MCE::Child-create-IDENT-FUNCTION-ARGS"></a>$child = MCE::Child->create( IDENT, FUNCTION, ARGS )</dt> <dd> <p>Options, excluding <code>ident</code>, may be specified globally via the <code>init</code> function. Otherwise, <code>ident</code>, <code>child_timeout</code>, <code>posix_exit</code>, and <code>void_context</code> may be set uniquely.</p> <p>The <code>ident</code> option is used by callback functions <code>on_start</code> and <code>on_finish</code> for identifying the started and finished child process respectively.</p> <pre><code>my $child1 = MCE::Child->create( { posix_exit => 1 }, sub { ... } ); $child1->join; my $child2 = MCE::Child->create( { child_timeout => 3 }, sub { sleep 1 for ( 1 .. 9 ); } ); $child2->join; if ( $child2->error() eq "Child timed out\n" ) { ... }</code></pre> <p>The <code>new()</code> method is an alias for <code>create()</code>.</p> </dd> <dt id="mce_child-{-BLOCK-}-ARGS;"><a id="mce_child"></a><a id="mce_child-BLOCK-ARGS"></a>mce_child { BLOCK } ARGS;</dt> <dd> </dd> <dt id="mce_child-{-BLOCK-};"><a id="mce_child1"></a><a id="mce_child-BLOCK"></a>mce_child { BLOCK };</dt> <dd> <p><code>mce_child</code> runs the block asynchronously similarly to <code>MCE::Child->create()</code>. It returns the child object, or undef if child creation failed.</p> <pre><code>my $child = mce_child { foreach (@files) { ... } }; $child->join(); if ( my $err = $child->error() ) { warn("Child error: $err\n"); }</code></pre> </dd> <dt id="$child->join()"><a id="join"></a><a id="child-join"></a>$child->join()</dt> <dd> <p>This will wait for the corresponding child process to complete its execution. In non-voided context, <code>join()</code> will return the value(s) of the entry point function.</p> <p>The context (void, scalar or list) for the return value(s) for <code>join</code> is determined at the time of joining and mostly <code>wantarray</code> aware.</p> <pre><code>my $child1 = MCE::Child->create( sub { my @res = qw(foo bar baz); return (@res); }); my @res1 = $child1->join(); # ( foo, bar, baz ) my $res1 = $child1->join(); # baz my $child2 = MCE::Child->create( sub { return 'foo'; }); my @res2 = $child2->join(); # ( foo ) my $res2 = $child2->join(); # foo</code></pre> </dd> <dt id="$child1->equal(-$child2-)"><a id="equal"></a><a id="child1-equal-child2"></a>$child1->equal( $child2 )</dt> <dd> <p>Tests if two child objects are the same child or not. Child comparison is based on process IDs. This is overloaded to the more natural forms.</p> <pre><code>if ( $child1 == $child2 ) { print("Child objects are the same\n"); } # or if ( $child1 != $child2 ) { print("Child objects differ\n"); }</code></pre> </dd> <dt id="$child->error()"><a id="error"></a><a id="child-error"></a>$child->error()</dt> <dd> <p>Child processes are executed in an <code>eval</code> context. This method will return <code>undef</code> if the child terminates <i>normally</i>. Otherwise, it returns the value of <code>$@</code> associated with the child's execution status in its <code>eval</code> context.</p> </dd> <dt id="$child->exit()"><a id="exit"></a><a id="child-exit"></a>$child->exit()</dt> <dd> <p>This sends <code>'SIGQUIT'</code> to the child process, notifying the child to exit. It returns the child object to allow for method chaining. It is important to join later if not immediately to not leave a zombie or defunct process.</p> <pre><code>$child->exit()->join(); ... $child->join(); # later</code></pre> </dd> <dt id="MCE::Child->exit(-0-)"><a id="MCE"></a><a id="MCE::Child-exit-0"></a>MCE::Child->exit( 0 )</dt> <dd> </dd> <dt id="MCE::Child->exit(-0,-@ret-)"><a id="MCE1"></a><a id="MCE::Child-exit-0-ret"></a>MCE::Child->exit( 0, @ret )</dt> <dd> <p>A child can exit at any time by calling <code>MCE::Child->exit()</code>. Otherwise, the behavior is the same as <code>exit(status)</code> when called from the main process. The child process may optionally return data, to be sent via IPC.</p> </dd> <dt id="MCE::Child->finish()"><a id="MCE2"></a><a id="MCE::Child-finish"></a>MCE::Child->finish()</dt> <dd> <p>This class method is called automatically by <code>END</code>, but may be called explicitly. An error is emitted via croak if there are active child processes not yet joined.</p> <pre><code>MCE::Child->create( 'task1', $_ ) for 1 .. 4; $_->join for MCE::Child->list(); MCE::Child->create( 'task2', $_ ) for 1 .. 4; $_->join for MCE::Child->list(); MCE::Child->create( 'task3', $_ ) for 1 .. 4; $_->join for MCE::Child->list(); MCE::Child->finish();</code></pre> </dd> <dt id="MCE::Child->init(-options-)"><a id="MCE3"></a><a id="MCE::Child-init-options"></a>MCE::Child->init( options )</dt> <dd> <p>The init function accepts a list of MCE::Child options.</p> <p>In scalar context (API available since 1.897), call <code>MCE::Child-</code>finish> automatically upon leaving the scope or program.</p> <pre><code>my $guard = MCE::Child->init( max_workers => 'auto', # default undef, unlimited # Specify a percentage. MCE::Child 1.876+. max_workers => '25%', # 4 on HW with 16 lcores max_workers => '50%', # 8 on HW with 16 lcores child_timeout => 20, # default undef, no timeout posix_exit => 1, # default undef, CORE::exit void_context => 1, # default undef on_start => sub { my ( $pid, $ident ) = @_; ... }, on_finish => sub { my ( $pid, $exit, $ident, $signal, $error, @ret ) = @_; ... } ); # Identification given as an option or the 1st argument. for my $key ( 'aa' .. 'zz' ) { MCE::Child->create( { ident => $key }, sub { ... } ); MCE::Child->create( $key, sub { ... } ); } MCE::Child->wait_all;</code></pre> <p>Set <code>max_workers</code> if you want to limit the number of workers by waiting automatically for an available slot. Specify a percentage or <code>auto</code> to obtain the number of logical cores via <code>MCE::Util::get_ncpu()</code>.</p> <p>Set <code>child_timeout</code>, in number of seconds, if you want the child process to terminate after some time. The default is <code>0</code> for no timeout.</p> <p>Set <code>posix_exit</code> to avoid all END and destructor processing. Constructing MCE::Child inside a thread implies 1 or if present CGI, FCGI, Coro, Curses, Gearman::Util, Gearman::XS, LWP::UserAgent, Mojo::IOLoop, STFL, Tk, Wx, or Win32::GUI.</p> <p>Set <code>void_context</code> to create the child process in void context for the return value. Otherwise, the return context is wantarray-aware for <code>join()</code> and <code>result()</code> and determined when retrieving the data.</p> <p>The callback options <code>on_start</code> and <code>on_finish</code> are called in the parent process after starting the worker and later when terminated. The arguments for the subroutines were inspired by <a href="/pod/Parallel::ForkManager">Parallel::ForkManager</a>.</p> <p>The parameters for <code>on_start</code> are the following:</p> <pre><code>- pid of the child process - identification (ident option or 1st arg to create)</code></pre> <p>The parameters for <code>on_finish</code> are the following:</p> <pre><code>- pid of the child process - program exit code - identification (ident option or 1st arg to create) - exit signal id - error message from eval inside MCE::Child - returned data</code></pre> </dd> <dt id="$child->is_running()"><a id="is_running"></a><a id="child-is_running"></a>$child->is_running()</dt> <dd> <p>Returns true if a child is still running.</p> </dd> <dt id="$child->is_joinable()"><a id="is_joinable"></a><a id="child-is_joinable"></a>$child->is_joinable()</dt> <dd> <p>Returns true if the child has finished running and not yet joined.</p> </dd> <dt id="$child->kill(-'SIG...'-)"><a id="kill"></a><a id="child-kill-SIG"></a>$child->kill( 'SIG...' )</dt> <dd> <p>Sends the specified signal to the child. Returns the child object to allow for method chaining. As with <code>exit</code>, it is important to join eventually if not immediately to not leave a zombie or defunct process.</p> <pre><code>$child->kill('SIG...')->join();</code></pre> <p>The following is a parallel demonstration comparing <code>MCE::Shared</code> against <code>Redis</code> and <code>Redis::Fast</code> on a Fedora 23 VM. Joining begins after all workers have been notified to quit.</p> <pre><code>use Time::HiRes qw(time); use Redis; use Redis::Fast; use MCE::Child; use MCE::Shared; my $redis = Redis->new(); my $rfast = Redis::Fast->new(); my $array = MCE::Shared->array(); sub parallel_redis { my ($_redis) = @_; my ($count, $quit, $len) = (0, 0); # instead, use a flag to exit loop $SIG{'QUIT'} = sub { $quit = 1 }; while () { $len = $_redis->rpush('list', $count++); last if $quit; } $count; } sub parallel_array { my ($count, $quit, $len) = (0, 0); # do not exit from inside handler $SIG{'QUIT'} = sub { $quit = 1 }; while () { $len = $array->push($count++); last if $quit; } $count; } sub benchmark_this { my ($desc, $num_procs, $timeout, $code, @args) = @_; my ($start, $total) = (time(), 0); MCE::Child->new($code, @args) for 1..$num_procs; sleep $timeout; # joining is not immediate; ok $_->kill('QUIT') for MCE::Child->list(); # joining later; ok $total += $_->join() for MCE::Child->list(); printf "$desc <> duration: %0.03f secs, count: $total\n", time() - $start; sleep 0.2; } benchmark_this('Redis ', 8, 5.0, \&parallel_redis, $redis); benchmark_this('Redis::Fast', 8, 5.0, \&parallel_redis, $rfast); benchmark_this('MCE::Shared', 8, 5.0, \&parallel_array);</code></pre> </dd> <dt id="MCE::Child->list()"><a id="MCE4"></a><a id="MCE::Child-list"></a>MCE::Child->list()</dt> <dd> <p>Returns a list of all child objects not yet joined.</p> <pre><code>@procs = MCE::Child->list();</code></pre> </dd> <dt id="MCE::Child->list_pids()"><a id="MCE5"></a><a id="MCE::Child-list_pids"></a>MCE::Child->list_pids()</dt> <dd> <p>Returns a list of all child pids not yet joined (available since 1.849).</p> <pre><code>@pids = MCE::Child->list_pids(); $SIG{INT} = $SIG{HUP} = $SIG{TERM} = sub { # Signal workers all at once CORE::kill('KILL', MCE::Child->list_pids()); exec('reset'); };</code></pre> </dd> <dt id="MCE::Child->list_running()"><a id="MCE6"></a><a id="MCE::Child-list_running"></a>MCE::Child->list_running()</dt> <dd> <p>Returns a list of all child objects that are still running.</p> <pre><code>@procs = MCE::Child->list_running();</code></pre> </dd> <dt id="MCE::Child->list_joinable()"><a id="MCE7"></a><a id="MCE::Child-list_joinable"></a>MCE::Child->list_joinable()</dt> <dd> <p>Returns a list of all child objects that have completed running. Thus, ready to be joined without blocking.</p> <pre><code>@procs = MCE::Child->list_joinable();</code></pre> </dd> <dt id="MCE::Child->max_workers([-N-])"><a id="MCE8"></a><a id="MCE::Child-max_workers-N"></a>MCE::Child->max_workers([ N ])</dt> <dd> <p>Getter and setter for max_workers. Specify a number or 'auto' to acquire the total number of cores via MCE::Util::get_ncpu. Specify a false value to set back to no limit.</p> </dd> <dt id="MCE::Child->pending()"><a id="MCE9"></a><a id="MCE::Child-pending"></a>MCE::Child->pending()</dt> <dd> <p>Returns a count of all child objects not yet joined.</p> <pre><code>$count = MCE::Child->pending();</code></pre> </dd> <dt id="$child->result()"><a id="result"></a><a id="child-result"></a>$child->result()</dt> <dd> <p>Returns the result obtained by <code>join</code>, <code>wait_one</code>, or <code>wait_all</code>. If the process has not yet exited, waits for the corresponding child to complete its execution.</p> <pre><code>use MCE::Child; use Time::HiRes qw(sleep); sub task { my ($id) = @_; sleep $id * 0.333; return $id; } MCE::Child->create('task', $_) for ( reverse 1 .. 3 ); # 1 while MCE::Child->wait_one(); while ( my $child = MCE::Child->wait_one() ) { my $err = $child->error() || 'no error'; my $res = $child->result(); my $pid = $child->pid(); print "[$pid] $err : $res\n"; }</code></pre> <p>Like <code>join</code> described above, the context (void, scalar or list) for the return value(s) is determined at the time <code>result</code> is called and mostly <code>wantarray</code> aware.</p> <pre><code>my $child1 = MCE::Child->create( sub { my @res = qw(foo bar baz); return (@res); }); my @res1 = $child1->result(); # ( foo, bar, baz ) my $res1 = $child1->result(); # baz my $child2 = MCE::Child->create( sub { return 'foo'; }); my @res2 = $child2->result(); # ( foo ) my $res2 = $child2->result(); # foo</code></pre> </dd> <dt id="MCE::Child->seed()"><a id="MCE10"></a><a id="MCE::Child-seed"></a>MCE::Child->seed()</dt> <dd> <p>Class method that returns the internal random generated seed or undefined. The seed is generated once during init or initial create.</p> <p>Current API available since 1.895.</p> </dd> <dt id="MCE::Child->self()"><a id="MCE11"></a><a id="MCE::Child-self"></a>MCE::Child->self()</dt> <dd> <p>Class method that allows a child to obtain it's own <i>MCE::Child</i> object.</p> </dd> <dt id="$child->pid()"><a id="pid"></a><a id="child-pid"></a>$child->pid()</dt> <dd> </dd> <dt id="$child->tid()"><a id="tid"></a><a id="child-tid"></a>$child->tid()</dt> <dd> <p>Returns the ID of the child.</p> <pre><code>pid: $$ process id tid: $$ alias for pid</code></pre> </dd> <dt id="MCE::Child->pid()"><a id="MCE12"></a><a id="MCE::Child-pid"></a>MCE::Child->pid()</dt> <dd> </dd> <dt id="MCE::Child->tid()"><a id="MCE13"></a><a id="MCE::Child-tid"></a>MCE::Child->tid()</dt> <dd> <p>Class methods that allows a child to obtain its own ID.</p> <pre><code>pid: $$ process id tid: $$ alias for pid</code></pre> </dd> <dt id="MCE::Child->wait_one()"><a id="MCE14"></a><a id="MCE::Child-wait_one"></a>MCE::Child->wait_one()</dt> <dd> </dd> <dt id="MCE::Child->waitone()"><a id="MCE15"></a><a id="MCE::Child-waitone"></a>MCE::Child->waitone()</dt> <dd> </dd> <dt id="MCE::Child->wait_all()"><a id="MCE16"></a><a id="MCE::Child-wait_all"></a>MCE::Child->wait_all()</dt> <dd> </dd> <dt id="MCE::Child->waitall()"><a id="MCE17"></a><a id="MCE::Child-waitall"></a>MCE::Child->waitall()</dt> <dd> <p>Meaningful for the manager process only, waits for one or all child processes to complete execution. Afterwards, returns the corresponding child objects. If a child doesn't exist, returns the <code>undef</code> value or an empty list for <code>wait_one</code> and <code>wait_all</code> respectively.</p> <p>The <code>waitone</code> and <code>waitall</code> methods are aliases for compatibility with <code>MCE::Hobo</code>.</p> <pre><code>use MCE::Child; use Time::HiRes qw(sleep); sub task { my $id = shift; sleep $id * 0.333; return $id; } MCE::Child->create('task', $_) for ( reverse 1 .. 3 ); # join, traditional use case $_->join() for MCE::Child->list(); # wait_one, simplistic use case 1 while MCE::Child->wait_one(); # wait_one while ( my $child = MCE::Child->wait_one() ) { my $err = $child->error() || 'no error'; my $res = $child->result(); my $pid = $child->pid(); print "[$pid] $err : $res\n"; } # wait_all my @procs = MCE::Child->wait_all(); for ( @procs ) { my $err = $_->error() || 'no error'; my $res = $_->result(); my $pid = $_->pid(); print "[$pid] $err : $res\n"; }</code></pre> </dd> <dt id="MCE::Child->yield(-[-floating_seconds-]-)"><a id="MCE18"></a><a id="MCE::Child-yield-floating_seconds"></a>MCE::Child->yield( [ floating_seconds ] )</dt> <dd> <p>Give other workers a chance to run, optionally for given time. Yield behaves similarly to MCE's interval option. It throttles workers from running too fast. A demonstration is provided in the next section for fetching URLs in parallel.</p> <p>The default <code>floating_seconds</code> is 0.008 and 0.015 on UNIX and Windows, respectively. Pass 0 if simply wanting to give other workers a chance to run.</p> <pre><code># total run time: 1.00 second MCE::Child->create( sub { MCE::Child->yield(0.25) } ) for 1 .. 4; MCE::Child->wait_all();</code></pre> </dd> </dl> <h1 id="THREADS-like-DETACH-CAPABILITY"><a id="THREADS"></a>THREADS-like DETACH CAPABILITY</h1> <p>Threads-like detach capability was added starting with the 1.867 release.</p> <p>A threads example is shown first followed by the MCE::Child example. All one needs to do is set the CHLD signal handler to IGNORE. Unfortunately, this works on UNIX platforms only. The child process restores the CHLD handler to default, so is able to deeply spin workers and reap if desired.</p> <pre><code>use threads; for ( 1 .. 8 ) { async { # do something }->detach; } use MCE::Child; # Have the OS reap workers automatically when exiting. # The on_finish option is ignored if specified (no-op). # Ensure not inside a thread on UNIX platforms. $SIG{CHLD} = 'IGNORE'; for ( 1 .. 8 ) { mce_child { # do something }; } # Optionally, wait for any remaining workers before leaving. # This is necessary if workers are consuming shared objects, # constructed via MCE::Shared. MCE::Child->wait_all;</code></pre> <p>The following is another way and works on Windows. Here, the on_finish handler works as usual.</p> <pre><code>use MCE::Child; MCE::Child->init( on_finish = sub { ... }, ); for ( 1 .. 8 ) { $_->join for MCE::Child->list_joinable; mce_child { # do something }; } MCE::Child->wait_all;</code></pre> <h1 id="PARALLEL::FORKMANAGER-like-DEMONSTRATION"><a id="PARALLEL"></a>PARALLEL::FORKMANAGER-like DEMONSTRATION</h1> <p>MCE::Child behaves similarly to threads for the most part. It also provides <a href="/pod/Parallel::ForkManager">Parallel::ForkManager</a>-like capabilities. The <code>Parallel::ForkManager</code> example is shown first followed by a version using <code>MCE::Child</code>.</p> <dl> <dt id="Parallel::ForkManager"><a id="Parallel"></a>Parallel::ForkManager</dt> <dd> <pre><code>use strict; use warnings; use Parallel::ForkManager; use Time::HiRes 'time'; my $start = time; my $pm = Parallel::ForkManager->new(10); $pm->set_waitpid_blocking_sleep(0); $pm->run_on_finish( sub { my ($pid, $exit_code, $ident, $exit_signal, $core_dumped, $resp) = @_; print "child $pid completed: $ident => ", $resp->[0], "\n"; }); DATA_LOOP: foreach my $data ( 1..2000 ) { # forks and returns the pid for the child my $pid = $pm->start($data) and next DATA_LOOP; my $ret = [ $data * 2 ]; $pm->finish(0, $ret); } $pm->wait_all_children; printf STDERR "duration: %0.03f seconds\n", time - $start;</code></pre> </dd> <dt id="MCE::Child"><a id="MCE19"></a>MCE::Child</dt> <dd> <pre><code>use strict; use warnings; use MCE::Child 1.843; use Time::HiRes 'time'; my $start = time; MCE::Child->init( max_workers => 10, on_finish => sub { my ($pid, $exit_code, $ident, $exit_signal, $error, $resp) = @_; print "child $pid completed: $ident => ", $resp->[0], "\n"; } ); foreach my $data ( 1..2000 ) { MCE::Child->create( $data, sub { [ $data * 2 ]; }); } MCE::Child->wait_all; printf STDERR "duration: %0.03f seconds\n", time - $start;</code></pre> </dd> <dt id="Time-to-spin-2,000-workers-and-obtain-results-(in-seconds)."><a id="Time"></a><a id="Time-to-spin-2-000-workers-and-obtain-results-in-seconds"></a>Time to spin 2,000 workers and obtain results (in seconds).</dt> <dd> <p>Results were obtained on a Macbook Pro (2.6 GHz ~ 3.6 GHz with Turbo Boost). Parallel::ForkManager 2.02 uses Moo. Therefore, I ran again with Moo loaded at the top of the script.</p> <pre><code>MCE::Hobo uses MCE::Shared to retrieve data during reaping. MCE::Child uses MCE::Channel, no shared-manager. Version Cygwin Windows Linux macOS FreeBSD MCE::Child 1.843 19.099s 17.091s 0.965s 1.534s 1.229s MCE::Hobo 1.843 20.514s 19.594s 1.246s 1.629s 1.613s P::FM 1.20 19.703s 19.235s 0.875s 1.445s 1.346s MCE::Child 1.843 20.426s 18.417s 1.116s 1.632s 1.338s Moo loaded MCE::Hobo 1.843 21.809s 20.810s 1.407s 1.759s 1.722s Moo loaded P::FM 2.02 21.668s 25.927s 1.882s 2.612s 2.483s Moo used</code></pre> </dd> <dt id="Set-posix_exit-to-avoid-all-END-and-destructor-processing."><a id="Set"></a><a id="Set-posix_exit-to-avoid-all-END-and-destructor-processing"></a>Set posix_exit to avoid all END and destructor processing.</dt> <dd> <p>This is helpful for reducing overhead when workers exit. Ditto if using a Perl module not parallel safe. The option is ignored on Windows <code>$^O eq 'MSWin32'</code>.</p> <pre><code>MCE::Child->init( posix_exit => 1, ... ); MCE::Hobo->init( posix_exit => 1, ... ); Version Cygwin Windows Linux macOS FreeBSD MCE::Child 1.843 19.815s ignored 0.824s 1.284s 1.245s Moo loaded MCE::Hobo 1.843 21.029s ignored 0.953s 1.335s 1.439s Moo loaded</code></pre> </dd> </dl> <h1 id="PARALLEL-HTTP-GET-DEMONSTRATION-USING-ANYEVENT"><a id="PARALLEL1"></a>PARALLEL HTTP GET DEMONSTRATION USING ANYEVENT</h1> <p>This demonstration constructs two queues, two handles, starts the shared-manager process if needed, and spawns four workers. For this demonstration, am chunking 64 URLs per job. In reality, one may run with 200 workers and chunk 300 URLs on a 24-way box.</p> <pre><code># ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # perl demo.pl -- all output # perl demo.pl >/dev/null -- mngr/child output # perl demo.pl 2>/dev/null -- show results only # # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ use strict; use warnings; use AnyEvent; use AnyEvent::HTTP; use Time::HiRes qw( time ); use MCE::Child; use MCE::Shared; # Construct two queues, input and return. my $que = MCE::Shared->queue(); my $ret = MCE::Shared->queue(); # Construct shared handles for serializing output from many workers # writing simultaneously. This prevents garbled output. mce_open my $OUT, ">>", \*STDOUT or die "open error: $!"; mce_open my $ERR, ">>", \*STDERR or die "open error: $!"; # Spawn workers early for minimum memory consumption. MCE::Child->create({ posix_exit => 1 }, 'task', $_) for 1 .. 4; # Obtain or generate input data for workers to process. my ( $count, @urls ) = ( 0 ); push @urls, map { "http://127.0.0.$_/" } 1..254; push @urls, map { "http://192.168.0.$_/" } 1..254; # 508 URLs total while ( @urls ) { my @chunk = splice(@urls, 0, 64); $que->enqueue( { ID => ++$count, INPUT => \@chunk } ); } # So that workers leave the loop after consuming the queue. $que->end(); # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Loop for the manager process. The manager may do other work if # need be and periodically check $ret->pending() not shown here. # # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ my $start = time; printf {$ERR} "Mngr - entering loop\n"; while ( $count ) { my ( $result, $failed ) = $ret->dequeue( 2 ); # Remove ID from result, so not treated as a URL item. printf {$ERR} "Mngr - received job %s\n", delete $result->{ID}; # Display the URL and the size captured. foreach my $url ( keys %{ $result } ) { printf {$OUT} "%s: %d\n", $url, length($result->{$url}) if $result->{$url}; # url has content } # Display URLs could not reach. if ( @{ $failed } ) { foreach my $url ( @{ $failed } ) { print {$OUT} "Failed: $url\n"; } } # Decrement the count. $count--; } MCE::Child->wait_all(); printf {$ERR} "Mngr - exiting loop\n\n"; printf {$ERR} "Duration: %0.3f seconds\n\n", time - $start; exit; # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Child processes enqueue two items ( $result and $failed ) per each # job for the manager process. Likewise, the manager process dequeues # two items above. Optionally, child processes may include the ID in # the result. # # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub task { my ( $id ) = @_; printf {$ERR} "Child $id entering loop\n"; while ( my $job = $que->dequeue() ) { my ( $result, $failed ) = ( { ID => $job->{ID} }, [ ] ); # Walk URLs, provide a hash and array refs for data. printf {$ERR} "Child $id running job $job->{ID}\n"; walk( $job, $result, $failed ); # Send results to the manager process. $ret->enqueue( $result, $failed ); } printf {$ERR} "Child $id exiting loop\n"; } sub walk { my ( $job, $result, $failed ) = @_; # Yielding is critical when running an event loop in parallel. # Not doing so means that the app may reach contention points # with the firewall and likely impose unnecessary hardship at # the OS level. The idea here is not to have multiple workers # initiate HTTP requests to a batch of URLs at the same time. # Yielding behaves similarly like scatter to have the child # process run solo for a fraction of time. MCE::Child->yield( 0.03 ); my $cv = AnyEvent->condvar(); # Populate the hash ref for the URLs it could reach. # Do not mix AnyEvent timeout with child timeout. # Therefore, choose event timeout when available. foreach my $url ( @{ $job->{INPUT} } ) { $cv->begin(); http_get $url, timeout => 2, sub { my ( $data, $headers ) = @_; $result->{$url} = $data; $cv->end(); }; } $cv->recv(); # Populate the array ref for URLs it could not reach. foreach my $url ( @{ $job->{INPUT} } ) { push @{ $failed }, $url unless (exists $result->{ $url }); } return; } __END__ $ perl demo.pl Child 1 entering loop Child 2 entering loop Child 3 entering loop Mngr - entering loop Child 2 running job 2 Child 3 running job 3 Child 1 running job 1 Child 4 entering loop Child 4 running job 4 Child 2 running job 5 Mngr - received job 2 Child 3 running job 6 Mngr - received job 3 Child 1 running job 7 Mngr - received job 1 Child 4 running job 8 Mngr - received job 4 http://192.168.0.1/: 3729 Child 2 exiting loop Mngr - received job 5 Child 3 exiting loop Mngr - received job 6 Child 1 exiting loop Mngr - received job 7 Child 4 exiting loop Mngr - received job 8 Mngr - exiting loop Duration: 4.131 seconds</code></pre> <h1 id="CROSS-PLATFORM-TEMPLATE-FOR-BINARY-EXECUTABLE"><a id="CROSS"></a>CROSS-PLATFORM TEMPLATE FOR BINARY EXECUTABLE</h1> <p>Making an executable is possible with the <a href="/pod/PAR::Packer">PAR::Packer</a> module. On the Windows platform, threads, threads::shared, and exiting via threads are necessary for the binary to exit successfully.</p> <pre><code># https://metacpan.org/pod/PAR::Packer # https://metacpan.org/pod/pp # # pp -o demo.exe demo.pl # ./demo.exe use strict; use warnings; use if $^O eq "MSWin32", "threads"; use if $^O eq "MSWin32", "threads::shared"; # Include minimum dependencies for MCE::Child. # Add other modules required by your application here. use Storable (); use Time::HiRes (); # use IO::FDPass (); # optional: for condvar, handle, queue # use Sereal (); # optional: for faster serialization use MCE::Child; use MCE::Shared; # For PAR to work on the Windows platform, one must include manually # any shared modules used by the application. # use MCE::Shared::Array; # if using MCE::Shared->array # use MCE::Shared::Cache; # if using MCE::Shared->cache # use MCE::Shared::Condvar; # if using MCE::Shared->condvar # use MCE::Shared::Handle; # if using MCE::Shared->handle, mce_open # use MCE::Shared::Hash; # if using MCE::Shared->hash # use MCE::Shared::Minidb; # if using MCE::Shared->minidb # use MCE::Shared::Ordhash; # if using MCE::Shared->ordhash # use MCE::Shared::Queue; # if using MCE::Shared->queue # use MCE::Shared::Scalar; # if using MCE::Shared->scalar # Et cetera. Only load modules needed for your application. use MCE::Shared::Sequence; # if using MCE::Shared->sequence my $seq = MCE::Shared->sequence( 1, 9 ); sub task { my ( $id ) = @_; while ( defined ( my $num = $seq->next() ) ) { print "$id: $num\n"; sleep 1; } } sub main { MCE::Child->new( \&task, $_ ) for 1 .. 3; MCE::Child->wait_all(); } # Main must run inside a thread on the Windows platform or workers # will fail duing exiting, causing the exe to crash. The reason is # that PAR or a dependency isn't multi-process safe. ( $^O eq "MSWin32" ) ? threads->create(\&main)->join() : main(); threads->exit(0) if $INC{"threads.pm"};</code></pre> <h1 id="LIMITATION">LIMITATION</h1> <p>MCE::Child emits an error when <code>is_joinable</code>, <code>is_running</code>, and <code>join</code> isn't called by the managed process, where the child was spawned. This is a limitation in MCE::Child only due to not involving a shared-manager process for IPC.</p> <p>This use-case is not typical.</p> <h1 id="CREDITS">CREDITS</h1> <p>The inspiration for <code>MCE::Child</code> comes from wanting <code>threads</code>-like behavior for processes compatible with Perl 5.8. Both can run side-by-side including safe-use by MCE workers. Likewise, the documentation resembles <code>threads</code>.</p> <p>The inspiration for <code>wait_all</code> and <code>wait_one</code> comes from the <code>Parallel::WorkUnit</code> module.</p> <h1 id="SEE-ALSO"><a id="SEE"></a>SEE ALSO</h1> <ul> <li><p><a href="/pod/forks">forks</a></p> </li> <li><p><a href="/pod/forks::BerkeleyDB">forks::BerkeleyDB</a></p> </li> <li><p><a href="/pod/MCE::Hobo">MCE::Hobo</a></p> </li> <li><p><a href="/pod/Parallel::ForkManager">Parallel::ForkManager</a></p> </li> <li><p><a href="/pod/Parallel::Loops">Parallel::Loops</a></p> </li> <li><p><a href="/pod/Parallel::Prefork">Parallel::Prefork</a></p> </li> <li><p><a href="/pod/Parallel::WorkUnit">Parallel::WorkUnit</a></p> </li> <li><p><a href="/pod/Proc::Fork">Proc::Fork</a></p> </li> <li><p><a href="/pod/Thread::Tie">Thread::Tie</a></p> </li> <li><p><a href="/pod/threads">threads</a></p> </li> </ul> <h1 id="INDEX">INDEX</h1> <p><a href="/pod/distribution/MCE/lib/MCE.pod">MCE</a>, <a href="/pod/MCE::Channel">MCE::Channel</a>, <a href="/pod/MCE::Shared">MCE::Shared</a></p> <h1 id="AUTHOR">AUTHOR</h1> <p>Mario E. Roy, <span style="white-space: nowrap;"><marioeroy AT gmail DOT com></span></p></div> <div id="metacpan_install-instructions-dialog" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h4 class="modal-title">Module Install Instructions</h4> </div> <div class="modal-body"> <p>To install MCE, copy and paste the appropriate command in to your terminal.</p> <p><a href="/dist/App-cpanminus/view/bin/cpanm">cpanm</a></p> <pre><code>cpanm MCE</code></pre> <p><a href="/pod/CPAN">CPAN shell</a></p> <pre><code>perl -MCPAN -e shell install MCE</code></pre> <p>For more information on module installation, please visit <a href="https://www.cpan.org/modules/INSTALL.html">the detailed CPAN module installation guide</a>.</p> </div> <div class="modal-footer"> <a href="#" data-dismiss="modal" class="btn">Close</a> </div> </div> </div> </div> </main> <div class="content-pagination"> </div> </div> <footer class="footer"> <div class="footer-container"> <div class="footer-social"> <div class="footer-link footer-logo"> <a href="/"> <img src="/static/images/metacpan-logo.svg" alt="MetaCPAN" /> </a> </div> <a class="footer-social-link" href="https://github.com/metacpan"> <i class="fab fa-github-square"></i> </a> <a class="footer-social-link" href="https://fosstodon.org/@metacpan"> <i class="fab fa-mastodon"></i> </a> </div> <div class="footer-links"> <div class="footer-link"> <a href="/about">About</a> </div> <div class="footer-link"> <a href="/about/sponsors">Sponsor</a> </div> <div class="footer-link"> <a href="https://grep.metacpan.org">grep::cpan</a> </div> <div class="footer-link"> <a href="/recent">Recent</a> </div> <div class="footer-link"> <a href="/about/faq">FAQ</a> </div> <div class="footer-link"> <a href="/tools">Tools</a> </div> <div class="footer-link"> <a href="https://fastapi.metacpan.org/">API</a> </div> <div class="footer-link"> <a href="https://www.perl.org/">Perl.org</a> </div> </div> <div class="footer-sponsors"> <a class="footer-sponsor-link" target="_blank" href="https://www.bytemark.co.uk/" rel="noopener"> <img class="footer-sponsor-bytemark" src="/static/images/sponsors/bytemark_logo.svg" alt="Bytemark logo"> </a> <a class="footer-sponsor-link" target="_blank" href="https://www.liquidweb.com/" rel="noopener"> <img class="footer-sponsor-liquidweb" src="/static/images/sponsors/liquidweb_logo.png" alt="liquidweb logo"> </a> <a class="footer-sponsor-link" target="_blank" href="https://deriv.com/careers/" rel="noopener"> <img class="footer-sponsor-deriv" src="/static/images/sponsors/deriv.svg" alt="Deriv logo"> </a> <a class="footer-sponsor-link" target="_blank" href="https://geocode.xyz" rel="noopener"> <img class="footer-sponsor-geocode" src="/static/images/sponsors/geocodelogo.svg" alt="Geocode logo"> </a> <a class="footer-sponsor-link" target="_blank" href="https://www.fastly.com/" rel="noopener"> <img class="footer-sponsor-fastly" src="/static/images/sponsors/fastly_logo.svg" alt="Fastly logo"> </a> <a class="footer-sponsor-link" target="_blank" href="https://opencagedata.com" rel="noopener"> <img class="footer-sponsor-opencage" src="/static/images/sponsors/open-cage.svg" alt="OpenCage logo"> </a> <!-- Added 2024-07-22 --> <a class="footer-sponsor-link" target="_blank" href="https://www.elastic.co/" rel="noopener"> <img class="footer-sponsor-elastic" src="/static/images/sponsors/elastic.svg" alt="Elastic logo"> </a> <!-- Added 2024-07-22 --> <a class="footer-sponsor-link" target="_blank" href="https://route4me.com/" rel="noopener"> <img class="footer-sponsor-route4me" src="/static/images/sponsors/route4me.png" alt="Route4Me logo"> </a> </div> </div> </footer> <div class="modal fade" tabindex="-1" role="dialog" id="metacpan_keyboard-shortcuts"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">×</button> <h4 class="modal-title">Keyboard Shortcuts</h4> </div> <div class="modal-body row"> <div class="col-md-6"> <table class="table keyboard-shortcuts"> <thead> <tr> <th></th> <th>Global</th> </tr> </thead> <tbody> <tr> <td class="keys"> <kbd>s</kbd> </td> <td>Focus search bar</td> </tr> <tr> <td class="keys"> <kbd>?</kbd> </td> <td>Bring up this help dialog</td> </tr> </tbody> </table> <table class="table keyboard-shortcuts"> <thead> <tr> <th></th> <th>GitHub</th> </tr> </thead> <tbody> <tr> <td class="keys"> <kbd>g</kbd> <kbd>p</kbd> </td> <td>Go to pull requests</td> </tr> <tr> <td class="keys"> <kbd>g</kbd> <kbd>i</kbd> </td> <td>go to github issues (only if github is preferred repository)</td> </tr> </tbody> </table> </div> <div class="col-md-6"> <table class="table keyboard-shortcuts"> <thead> <tr> <th></th> <th>POD</th> </tr> </thead> <tbody> <tr> <td class="keys"> <kbd>g</kbd> <kbd>a</kbd> </td> <td>Go to author</td> </tr> <tr> <td class="keys"> <kbd>g</kbd> <kbd>c</kbd> </td> <td>Go to changes</td> </tr> <tr> <td class="keys"> <kbd>g</kbd> <kbd>i</kbd> </td> <td>Go to issues</td> </tr> <tr> <td class="keys"> <kbd>g</kbd> <kbd>d</kbd> </td> <td>Go to dist</td> </tr> <tr> <td class="keys"> <kbd>g</kbd> <kbd>r</kbd> </td> <td>Go to repository/SCM</td> </tr> <tr> <td class="keys"> <kbd>g</kbd> <kbd>s</kbd> </td> <td>Go to source</td> </tr> <tr> <td class="keys"> <kbd>g</kbd> <kbd>b</kbd> </td> <td>Go to file browse</td> </tr> </tbody> </table> </div> <div class="col-md-12"> <table class="table keyboard-shortcuts"> <thead> <tr> <th></th> <th>Search terms</th> </tr> </thead> <tbody> <tr> <td><em>module:</em> (e.g. <a href="/search?q=module%3APlugin">module:Plugin</a>)</td> </tr> <tr> <td><em>distribution:</em> (e.g. <a href="/search?q=distribution%3ADancer+auth">distribution:Dancer auth</a>)</td> </tr> <tr> <td><em>author:</em> (e.g. <a href="/search?q=author%3ASONGMU+Redis">author:SONGMU Redis</a>)</td> </tr> <tr> <td><em>version:</em> (e.g. <a href="/search?q=version%3A1.00">version:1.00</a>)</td> </tr> </tbody> </table> </div> </div> <div class="modal-footer"></div> </div> </div> </div> </body> </html>