くだすれPerl(超初心者用)at PHPくだすれPerl(超初心者用) - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト200:nobodyさん 07/06/30 14:41:50 zANvV/vQ こういう範囲指定を → 4.43.96.0/24 このように変換 → 4.43.96.0-4.43.96.255 したいのですが、良い方法を教えてください。 201:nobodyさん 07/06/30 15:21:36 拡大解釈して、「あるIPアドレスがあるネットマスク内にあるか否か」 ってスクリプトなら。 my $netmask = q{4.43.96.0/24} ; my $ip = q{4.43.96.0} ; # <= ここにテストするIPアドレスをセット my ( $org_ip, $byte ) = split m{/}, $netmask ; my $packed_one = unpack qq{B$byte}, pack 'C4', split ( /\./, $ip ) ; my $packed_two = unpack qq{B$byte}, pack 'C4', split ( /\./, $org_ip ) ; if ( $packed_one eq $packed_two ){ print q{in} . qq{\n} ; } こんな感じ?と素人が答えてみるテスト。 202:nobodyさん 07/06/30 15:54:22 >>201 正直Perlは良く分からないのですが、コピペして結果がでました。 どうもありがとうございます。ペコリ 203:質問 07/06/30 16:27:58 6uCjWfRX 配列の値をリファレンスを使って、サブルーチンへ渡す方法についての質問です。 下記のような簡単な物を作って、配列のリファレンスがサブルーチン側へ渡されていることは わかりました。($alldata_refと$getdata_refが同じ) が、サブルーチンを使っての配列の値の参照がなぜかできません。 いろんなサイトをみても問題はないようですが、わかる方教えてください。 @alldata=(1,2,3,4,5); $alldata_ref=\@alldata; print "$alldata_ref\n"; foreach (@$alldata_ref){ print "$_"; } print "\n"; &COUNT8(\@alldata); sub COUNT8{ my $getdata_ref="@_"; print "$getdata_ref\n"; foreach (@$getdata_ref){ print "$_"; } print "\n"; 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch