MCE::Subs(3)

πŸ’– MCE::Subs β€” bestie edition πŸ’–

okay so this is the MCE::Subs page from the User Contributed Perl Documentation set, and honestly? it's giving "short but mighty" ✨ it's all about exporting plain little functions that are mapped directly to MCE methods. no cap.


🌸 VERSION 🌸

This document describes MCE::Subs version 1.902. yes bestie, that's the one πŸ’…


✨ SYNOPSIS ✨

 use MCE::Subs;  ## Exports manager and worker functions only
                 ## Getter functions are not exported by default

 use MCE::Subs qw( :getter  );  ## All, including getter functions
 use MCE::Subs qw( :manager );  ## Exports manager functions only
 use MCE::Subs qw( :worker  );  ## Exports worker functions only

 use MCE::Subs qw( :getter :worker );  ## Excludes manager functions

okay so lowkey the whole vibe here is: you pick a tag, you get a lil bundle of functions. that's it. that's the tweet 🐦


πŸ¦‹ DESCRIPTION πŸ¦‹

This module exports functions mapped to MCE methods. All exported functions are prototyped, therefore allowing one to call them without using parentheses. yes, it's giving convenience, it's giving main character energy πŸ‘‘

 use MCE::Subs qw( :worker );

 sub user_func {
    my $wid = MCE->wid;

    mce_say "A: $wid";
    mce_sync;

    mce_say "B: $wid";
    mce_sync;

    mce_say "C: $wid";
    mce_sync;

    return;
 }

 MCE->new(
    max_workers => 24, user_func => \&user_func
 );

 mce_run 0 for (1..100);   ## 0 means do not shutdown after running

not me writing a whole worker function with zero parens, periodt πŸ’…


For the next example, we only want the worker functions to be exported, due to using MCE::Map, which takes care of creating a MCE instance and running. so you literally don't have to do anything else 🫢

 use MCE::Map;
 use MCE::Subs qw( :worker );

 ## The following serializes output to STDOUT and gathers $_ to @a.
 ## mce_say displays $_ when called without arguments.

 my @a = mce_map { mce_say; $_ } 1 .. 100;

 print scalar @a, "\n";

IMPORTANT LORE, bestie 🚨 Unlike the native Perl functions, printf, print, and say methods require the comma after the glob reference or file handle. like, the comma is not optional. it is THE moment. don't skip it 😀

 MCE->printf(\*STDERR, "%s\n", $error_msg);
 MCE->print(\*STDERR, $error_msg, "\n");
 MCE->say(\*STDERR, $error_msg);
 MCE->say($fh, $error_msg);

 mce_printf \*STDERR, "%s\n", $error_msg;
 mce_print \*STDERR, $error_msg, "\n";
 mce_say \*STDERR, $error_msg;
 mce_say $fh, $error_msg;

see how there's no parens version down there? adorable. iconic. slay πŸ’…βœ¨


πŸ‘‘ FUNCTIONS for the MANAGER PROCESS via ( :manager ) πŸ‘‘

MCE methods are described in MCE::Core. here's the whole roster, no skips, no cuts πŸŽ€

  • mce_abort
  • mce_do
  • mce_forchunk
  • mce_foreach
  • mce_forseq
  • mce_freeze
  • mce_process
  • mce_relay_final
  • mce_restart_worker
  • mce_run
  • mce_print
  • mce_printf
  • mce_say
  • mce_send
  • mce_shutdown
  • mce_spawn
  • mce_status
  • mce_thaw

🌈 FUNCTIONS for MCE WORKERS via ( :worker ) 🌈

MCE methods are described in MCE::Core. the worker squad rolls deep 🧚

  • mce_abort
  • mce_do
  • mce_exit
  • mce_freeze
  • mce_gather
  • mce_last
  • mce_next
  • mce_print
  • mce_printf
  • mce_relay
  • mce_relay_recv
  • mce_say
  • mce_sendto
  • mce_sync
  • mce_thaw
  • mce_yield

πŸ’œ GETTERS for MCE ATTRIBUTES via ( :getter ) πŸ’œ

MCE methods are described in MCE::Core. these are the "lemme just peek at that real quick" functions πŸ™ˆ

  • mce_chunk_id
  • mce_chunk_size
  • mce_max_retries
  • mce_max_workers
  • mce_pid
  • mce_seed
  • mce_sess_dir
  • mce_task_id
  • mce_task_name
  • mce_task_wid
  • mce_tmp_dir
  • mce_user_args
  • mce_wid
ok and remember: getters are not exported by default β€” you gotta ask for :getter if you want them. iykyk 😌

⭐ INDEX ⭐

MCE, MCE::Core


πŸŽ€ AUTHOR πŸŽ€

Mario E. Roy, <marioeroy AT gmail DOT com> β€” thank you for your service, king πŸ«‘πŸ’–


and that's the whole page bestie!! we ate and left no crumbs βœ¨πŸ“

this was documented under perl v5.42.0 and dated 2025-09-10. love that for us. mwah πŸ’‹πŸ’…πŸŒΈ

πŸ“¦ where this page comes from