I was having issues with the following:
> foo.pl
calling the wait condition
> perl foo.pl
doesn't wait.
I modified ouse.pm to use
Win32::Process::Info to see if the parent process is Windows explorer.
Update: missing line from code
=head1 NAME
ouse.pm
=head1 SYNOPSIS
perl -Mouse file.pl
=head1 DESCRIPTION
Install in your perl/lib or perl/site/lib directory
in a file named "ouse.pm". Then enter the following
commands:
assoc .pl=Perl
ftype Perl=C:\Progra~1\perl\bin\perl -Mouse "%1" %*
Then clicking on a *.pl file will cause the script to
run in a new window but the window will (usually)
not close when the script finishes.
=head1 AUTHOR
tye
http://perlmonks.org/index.pl?node_id=162087
=cut
use Win32::Process::Info;
END
{
#-- find the parent process;
my $pi = Win32::Process::Info->new();
my @info = $pi->GetProcInfo ( $$);
my @pinfo = $pi->GetProcInfo ( @info[0]->{ParentProcessId} );
#-- see if the parent process is the windows explorer.
if ( $pinfo[0]->{CommandLine} =~ /explorer/i )
{
eval " use Term::ReadKey; ";
unless($@)
{
print "Press any key to close...";
ReadMode(3);
ReadKey();
ReadMode(0);
}
else
{
print "Press ENTER to close: ";
<STDIN>;
}
}
}
1;