トップページ⇒tech
6コメント3KB

俺のPerlプログラムを添削してくれ!

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
たててみました。
0002デフォルトの名無しさんNGNG
あなたはこのスレッドを立てたとき、どれだけのレスがつくと思っていましたか?
500?それとも1000?今現在あなたはモニターの前でどきどきしながらリロード
を繰り返していることと思います。でも残念ながらこのままのペースでは、自作
自演でもしない限りレス100も突破することなく、数々の駄スレと同じ運命をた
どって奥深く埋もれていくことは確実でしょう。

「俺が立てたスレは他の奴らが立てた『駄スレ』とは一味違う!」きっとあなた
はそんなふうに思っているのでしょう。ですが客観的に見てあなたのスレッドは
残念ながら「低レベル」と言わざるを得ません。あなたが立てた「一味違うスレッ
ド」というものは普段あなたが一笑に付し軽蔑している「駄スレ」の正にそれな
のです。

ちょっとした勘違いから立ててしまったスレッドによって深く傷つくあなた。そ
んなあなたが気の毒でなりません。人は誰しも幸せになれるはずなのに・・・。

だからあなたにこのレスを書きました。私のこのレスが「レス100突破」に微力
ながら貢献できるのならば、そして私のこのレスによるageが、スレッド再燃に
微力ながら貢献できるのならば、こんなにうれしいことはありません。

2ちゃんねるという場所ですら、周りと噛み合うことができなかった不器用なあ
なたに、両手いっぱいの幸せが訪れますように・・・。
0003デフォルトの名無しさんNGNG
というわけで、自作自演。。。
複数のホストにpingをうつコマンド。

#!/usr/bin/perl -w

use strict;
use English;
use POSIX ":sys_wait_h";
use Net::Ping;

my $kid;
my $timeout = shift(@ARGV);
my @remote_addresses = @ARGV;

if (not defined(@remote_addresses)) {
print "Usage: ping_multicast timeout hostname [, hostname...]\n";
exit 1;
}

foreach my $address (@remote_addresses) {
my $pid = fork();

if ($pid == 0) {
ping_remote_host($address, $timeout);
exit;
}
}

while (($kid = waitpid(-1, &WNOHANG)) != -1) {
next;
}

# ------------------------------------------------------------------------------

sub ping_remote_host {
my $host = shift(@_);
my $timeout = shift(@_) || 5;
my $is_alive = "";

my $ping = Net::Ping->new("icmp");

if (!$ping->ping($host, $timeout)) {
$is_alive = "NOT ";
}

print "$host is ", $is_alive, "reachable.\n";

$ping->close();
}

# ------------------------------------------------------------------------------
0004デフォルトの名無しさんNGNG
さらに自作自演。。。
・子プロセスをみとるには、システムコールを利用しなさい。
・コメント書きなさい
・"!" か "not" は統一しなさい。
・use English とせんげんしながら "@_" を使うのはやめなさい。

このくらいか?
0005デフォルトの名無しさんNGNG
そういうことはPerl板でやってほしいのですが、何か?
0006デフォルトの名無しさんNGNG
Perl板なるものがあったのか。。すまん
■ このスレッドは過去ログ倉庫に格納されています