For both questions, I would suggest reviewing perlipc, the perl documentation on inter-process communications. The section on signal handling mentions both Ctrl-C and Ctrl-Z (from question 1), while the section "Using open() for IPC" would be a good place to start for question 2.
Hope that helps.
Update: (2011-02-17)
For reference, I believe (after a quick search) that Ctrl-C sends SIGINT (INT), and Ctrl-Z sends SIGTSTP (TSTP).
Update: (2011-02-17)
The example from the section on signal handling can be modified as follows to illustrate handling the INT and TSTP signals:
#!/usr/bin/perl
use strict;
use warnings;
sub catch_zap {
my $signame = shift;
die "Somebody sent me a SIG$signame";
}
$SIG{INT} = \&catch_zap; # best strategy
$SIG{TSTP} = \&catch_zap; # best strategy
my $t = time;
$t += 30;
while ( time < $t ) {
print scalar localtime, qq{\n};
sleep 1;
}
A modification of the second code example in the section mentioned for question two uses open() to retrieve interface IP information using the ifconfig command:
#!/usr/bin/perl
use strict;
use warnings;
my $interface;
open( CMD, "/sbin/ifconfig |" ) || die "can't fork: $!";
while (<CMD>) {
if (/^(\S+)/) {
$interface = $1;
}
next if !/(inet\d?)\s+addr:\s?(\S+)/;
print $interface, q{ }, $1, q{: }, $2, qq{\n};
}
close CMD || die "bad cmd: $! $?";
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|