You can pass any information on to the external script via the use of @ARGV, as shown below.
Code:
my $player = "YoMomma";
my $zonesn = "butcher";
# current full working directory
( my $cwd = $0 ) =~ s/(?:(?!\\|\/)\S)+$//;
# you'll want to add some sanity checks to make sure you have valid data here
sub EVENT_ENTERZONE
{
# hash with zonesn as keys and external scripts to run for the zone
my %signal_zone = (
butcher => "signal_butcher.pl",
cauldron => "signal_cauldron.pl"
);
{
local @ARGV = ($player);
do "$cwd$signal_zone{$zonesn}";
}
}
EVENT_ENTERZONE();
Above code calls the following (signal_butcher.pl located in the same folder):
Printed result: