Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • I've often wanted to know when people install one of my modules. Do you have a suggestion of a good way to do it? I was thinking of something like:

    local $SIG{ALARM} = sub { die "alarm" };
    alarm(5);
    print "[This question will timeout in 5 seconds and default to 'No']\n";
    my $val = eval { prompt("Send message to module author that you installed $module?", "Y") };
    $val = "N" if $@;
    if ($val =~ /^Y/i) {
         send_udp_packet_to_sergeant_dot_org();
    }

    Would that be reasonable?

    • I'd feel a lot more comfortable with that, but there's a better way. If you're using ExtUtil::MakeMaker (and I believe Module::Build offers the same functionality), then you can force a default if not running interactively. From the docs [cpan.org]:

      If prompt() detects that it is not running interactively and there is nothing on STDIN or if the PERL_MM_USE_DEFAULT environment variable is set to true, the $default will be used without prompting. This prevents automated processes from blocking on user input.