Perlでリクに答えるスクリプトを作るスレat TECH
Perlでリクに答えるスクリプトを作るスレ - 暇つぶし2ch511:デフォルトの名無しさん
06/03/06 21:20:04
カウンターで
0=あ
1=1

49=を
50=ん
って感じに変換するにはどーすればいいんですか?

512:デフォルトの名無しさん
06/03/06 21:24:12
日本語でおk

513:デフォルトの名無しさん
06/03/06 21:33:41
>>511
my %c = (
 '0' => 'あ',
 '1' => '1',
# 略
 '49' => 'を',
 '50' => 'ん'
);

などと作っておいて $c{$count} のような感じで対応する文字列を求める。

514:デフォルトの名無しさん
06/03/11 00:49:18
>>1
楽天とかで任天堂DSを購入するスクリプト組んでくれよ。人力じゃ無理 買えないw

515:デフォルトの名無しさん
06/03/12 16:39:03
連投スクリプトください

516:デフォルトの名無しさん
06/03/12 16:52:43
#!perl
use LWP::Simple;
while (1) { get 'URLリンク(pc8.2ch.net)'; }

517:デフォルトの名無しさん
06/03/12 16:53:39
連投スクリプトください

518:デフォルトの名無しさん
06/03/12 16:54:45
連投規制、バーボンに引っ掛からない2ch投稿スクリプト希望

519:デフォルトの名無しさん
06/03/12 17:18:26
#!perl
use LWP::Simple;
while (1) {
get 'URLリンク(pc8.2ch.net)';
sleep 30;
}


520:デフォルトの名無しさん
06/03/12 17:40:11
明らかに悪用する気満々だから嫌。

521:デフォルトの名無しさん
06/03/12 17:47:13
スレを埋めるときに使うんです(><;)

522:デフォルトの名無しさん
06/03/12 18:49:39
スレ埋めは、自分でスクリプトを書ける者にのみ許される神聖なる儀式であルッ!!

523:デフォルトの名無しさん
06/03/12 18:51:08
思いっきり悪用の気配やんか

524:デフォルトの名無しさん
06/03/15 20:52:25
あんま調子にのんなよ

525:デフォルトの名無しさん
06/03/16 23:41:18
テキスト処理でおうかがいします。
半角数字と全角数字が混在したテキストがありまして、
一桁のみの数字は全角、二桁以上の数字は半角に統一したいのです。
中身を見てみると、「33」とか「679」とかになっていて、
どういう入力をしたのか不思議でなりません。
何かよいお知恵はないでしょうか。

Perl 5.8.1、Mac OS XのTerminalで作業をしています。
入力ファイルのエンコードはUTF-16(中国語処理のため)、
use utf8;で処理しています。

526:デフォルトの名無しさん
06/03/16 23:43:46
適当に正規表現で変換してったらいいんじゃないの?

s/1/1/

527:デフォルトの名無しさん
06/03/17 00:20:14
全部半角にしてから全角に直すだな

528:525
06/03/17 23:51:02
>>526
>>527

こんな感じで書いてみました。

while(<>) {
tr/[0-9]/[0-9]/;
s/(¥D)1(¥D)/$11$2/g;
(中略)
s/(\D)9(\D)/$19$2/g;
print;
}

ただ、これだと2回同じ処理をしないといけないですよね。
最初の処理でtr行、次の処理でs行になるんでしょうか。
これを効率よく1回の処理ですませたいのですが、いいやり方をご存知ないですか?

529:ヽ(´ー`)ノ ◆.ogCuANUcE
06/03/18 00:13:06
use utf8;
use Unicode::Normalize;

$str = NFKC($str);
$str =~ s/(?<!\d)(\d)(?!\d)/(my $ret = $1) =~ tr[0-9][0-9]; $ret/ge;

これでどうだろう。

530:デフォルトの名無しさん
06/03/18 17:46:30
>>528
逆。数字をまず全部全角にして、
その後2文字以上連続する全角数字を半角にする。

531:http://www.vector.co.jp/soft/win95/util/se072729.html
06/03/18 21:12:31
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?

そういや64bitにネイティブ対応している2chブラウザてありましたっけ?





532:デフォルトの名無しさん
06/03/18 21:35:05
テキスト置換で64bitに対応してると
なんかいいことあんの?

533:デフォルトの名無しさん
06/03/18 22:40:20
>>531
マルチ + スレ違い乙


534:525
06/03/18 23:37:27
>530

ご指摘どうもありがとうございます。
他にも処理が山ほどあり、あまり時間がなくてテンパってました。

>529

うまくいきました。どうもありがとうございました。
こういうときに先読み・後読みを使うんですね。
教えていただいたものを流用して、
2桁のみ半角にすることもできました。

535:ヽ(´ー`)ノ ◆.ogCuANUcE
06/03/19 00:33:20
>>529 を書いて気が付いたんだが、Encode::JP::H2Z が変換できるのは
カタカナだけなんだな。

日本語処理で凝ったことしようと思ったら、Jcode なんかねぇ…。

536:デフォルトの名無しさん
06/03/19 03:25:47
>>532
読み込みの段階で64ビットは有利

537:デフォルトの名無しさん
06/03/19 09:25:18
うそつけ

538:デフォルトの名無しさん
06/03/22 21:16:20
>>528
「¥」と来たか。「\」ではないと。


539:デフォルトの名無しさん
06/03/29 06:15:44
すいません、リクです。

数字を有効数字の桁数で丸めるスクリプトを探しています。
例えば、round(数字, 桁数)の形で使うとすると、
round(-12345.067, 4)
round(-12345.067, 7)
round(0.0567, 1)
round(1234567890123456, 4)
は、それぞれ
-12350
-12345.07
0.06
1.235e+015
を返す、というようなものなんですが、どなたかお願いできませんか

540:デフォルトの名無しさん
06/03/29 12:19:00
最後の1つはprintfの%.3eでいいだろうし、上3つはMath::SigFigsのFormatSigFigsが
使えると思うから、値の範囲かなんかで場合分けしてそれぞれ食わせればいいんで
ないかな。


541:539
06/03/29 23:21:01
>>540
出来ました。どうもです。

あと、CPANを漁っていたらNumber::Formatに似たような機能をみつけたので、
これを改変してもうまくいきました。

sub round {
my ($number, $digits) = @_;
my $sign = $number <=> 0;
my $result = abs($number);
my $index;
if($number =~ /(.*)e(.*)/) {
$result = $1;
$index = $2;
}
my $precision = $digits - length(int($result));
if($result =~ /^0(\.0*)/) {
$precision += length($1);
}
my $multiplier = (10 ** $precision);
$result = int($result * $multiplier + 0.5000001) / $multiplier;
$result = -$result if $sign < 0;
$result *= (10 ** $index) if $index;
return $result;
}

542:デフォルトの名無しさん
06/03/32 03:59:17
$ip_sample = 222.4.xxx.xxx #フォームや環境変数から取得
$ip_data <<END_DATA;  #外部ファイルから読み込んだデータ(実際は約2万4千行程度)
国名A-221.184.0.0-221.191.255.255
国名B-221.240.0.0-222.15.255.255
国名C-222.144.0.0-222.151.255.255
END_DATA
foreach (@ip_data) {
($cctld,$ip_a,$ip_b) = split(/-/,$_);
if ( 判定ルーチン ){$ans = $cctld
last;
}
}
print $ans;#この場合は"国名B"と表示したい

$ip_dataを参照して$ip_sampleの値が$ip_dataのどの行に在るかの判定を行い
$ansへ該当する$ip_deta行の$cctldを返すようにしたいのですが
判定方法でつまずいています。gethostxxx関数を使えという方向は無しにして
元の$ip_dataを増やさずに行える極力短い判定のルーチンを教示おねがいします
このテの質問はwebプでやれと言われそうな気がするけど質問の内容が
板を選ぶ以前のレベルの自覚があるので敢えてこちらに投下しまふ。

543:デフォルトの名無しさん
06/03/32 06:32:36
こういうパズル的なのはどこでも答えてもらえそう

my $target = "222.4.0.0";
my @iptable = qw( 国名A-221.184.0.0-221.191.255.255 国名B-221.240.0.0-222.15.255.255 国名C-222.144.0.0-222.151.255.255 );

$target = pack("C"x4, split(/\./, $target));

for(@iptable){
my($country, $from, $to) = split /-/;
$from = pack("C"x4, split(/\./, $from));
$to = pack("C"x4, split(/\./, $to));
if($from le $target && $target le $to){
print "$countryが範囲内でした\n"
}
}

544:デフォルトの名無しさん
06/03/32 06:34:47
ありがとうございます
早速走らせて見ます


実は・・・・
- foreach (@ip_data) {
+ foreach ($ip_data) {
ですた、阿呆ですんませんです・・・ orz

545:デフォルトの名無しさん
06/03/32 07:51:49
その2万4千行のデータの状態によっては物凄く処理速度に差が出そうだ。
データを読みながら1回から2万4千回判定するのがいいか、
全部配列に読み込んでおよそ5回判定するのがいいか。

546:デフォルトの名無しさん
06/03/32 07:54:50
違った。14回?

547:542
06/03/32 14:00:16
>>543
web鯖にはまだ置いてませんが手元の環境では問題なく動きました。
答えを教えてもらうと、なるほどなぁと納得行くのですが
その答えをせめて自分で作れるまでにはなりたいです。
ネットでも資料沢山あるけどラクダ本がほしくなったので
日曜日にでも街に探しにイッテキマス
目標は脱ド初心者w

>>545
できれば色々なパターンをベンチ取って一番軽い処理を使いたいですw
どうしても重かったらIP国別データを2~3000行程度に分けて
IPの最初の8ビットを参照して呼び分けてみようかなと思ってますが・・・

548:デフォルトの名無しさん
06/03/32 20:14:29
>>547
アルゴリズムの勉強したほうがいいよ。
>>545-546でバイナリサーチに気づかないのはかなり重症

549:デフォルトの名無しさん
06/04/02 05:03:28
>>547


550:デフォルトの名無しさん
06/04/02 05:08:26
スマソ。書き込む前に送信してもうた・・・

>>547
IPをキー、国名を値にもつハッシュを作り、データベースクラスにtieしてみては?
2万4千行をメモリに持つのはつらいと思う。

551:550
06/04/02 05:38:58
ちょっと練習で書いてみた。IPは悩んだ末、強引に10進数に変換した。

my $data = <<EOF;
A-221.184.0.0-221.191.255.255
B-221.240.0.0-222.15.255.255
C-222.144.0.0-222.151.255.255
EOF
unlink 'test.db';
use Fcntl;
use DB_File;
tie my %db, 'DB_File', 'test.db', O_RDWR|O_CREAT, 0644, $DB_BTREE or die;
foreach(split/\n/, $data) {
my ($country, $from, $to) = split /-/;
for($from, $to) {
s/(\d+)\.(\d+)\.(\d+)\.(\d+)/$1*256**3+$2*256*256+$3*256+$4/e;
}
$db{$from-1} = 'N/A';
$db{$to} = $country;
}
untie %db;
sub find_country {
my $query = shift;
$query =~ s/(\d+)\.(\d+)\.(\d+)\.(\d)/$1*256**3+$2*256*256+$3*256+$4/e;
my $x = tie my %db, 'DB_File', 'test.db', O_RDONLY, 0644, $DB_BTREE or die;
my ($ip, $country) = ($query, 'N/A');
$x->seq($ip, $country, R_CURSOR);
return $country;
}

print find_country('221.239.0.1');

552:デフォルトの名無しさん
06/04/02 06:41:56
# IPアドレス→32bit整数
$ip = unpack('N', pack('CCCC', split(/\./, $ip)));
これで2倍くらいの速度になった
キャプチャが大きいんかなぁ

2個目のIPアドレス変換部分、最後が\d+じゃなくて\dになってたよ。
桁数が多いから計算ミスかと思ったけど、数字が文字列として尻についてただけなんだね。

553:デフォルトの名無しさん
06/04/04 17:06:58
>>552
use Socket; して inet_aton() 使ったら?


554:デフォルトの名無しさん
06/04/05 11:25:50
ベンチしたらinet_aton意外にとてつもなく遅いです。あとは
・「.」でばらすのはsplitより正規表現でキャプチャする方が速い
・4つの10進数から32bit整数にするのは、シフト>掛け算>pack-unpackの順で速い。
552の言うのとは逆の結果になったわけだがなんでかね?

Benchmark: running inet_aton, multiple_re, shift_re, unpack_re, unpack_split for at least 3 CPU seconds...
inet_aton: 5 wallclock secs ( 1.62 usr + 1.46 sys = 3.08 CPU) @ 425.97/s (n=1312)
multiple_re: 7 wallclock secs ( 3.26 usr + 0.00 sys = 3.26 CPU) @ 229803.99/s (n=749161)
shift_re: 3 wallclock secs ( 3.08 usr + 0.03 sys = 3.11 CPU) @ 274049.84/s (n=852295)
unpack_re: 3 wallclock secs ( 3.10 usr + 0.00 sys = 3.10 CPU) @ 183073.87/s (n=567529)
unpack_split: 4 wallclock secs ( 3.13 usr + 0.00 sys = 3.13 CPU) @ 119672.52/s (n=374575)


555:デフォルトの名無しさん
06/04/05 11:26:39

use Benchmark;
use Socket qw(inet_aton);
my $ip_a = 100.100.100.100;

timethese(undef,
{
unpack_split => sub {
my $ip = unpack('N', pack('CCCC', split(/\./, $ip_a)));
},
unpack_re => sub {
$ip_a =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
my $ip = unpack('N', pack('CCCC', $1, $2, $3, $4));
},
multiple_re => sub {
$ip_a =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
my $ip = $1*256*256*256 + $2*256*256 + $3*256 + $4;
},
shift_re => sub {
$ip_a =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
my $ip = $1 << 24 + $2 << 16 + $3 << 8 + $4;
},
inet_aton => sub {
my $ip = inet_aton($ip_a);
},
}
);


556:デフォルトの名無しさん
06/04/05 12:29:42
すまん、どうにも直観と反する結果なのでさらに調べていたらなんのことはない
my $ip_a = 100.100.100.100;

になっていたorz... もちろん正しくは

my $ip_a = '100.100.100.100';

なのでベンチ取り直した。

Benchmark: running inet_aton, multiple_re, shift_re, unpack_re, unpack_split for at least 3 CPU seconds...
inet_aton: 3 wallclock secs ( 3.16 usr + 0.00 sys = 3.16 CPU) @ 267949.37/s (n=846720)
multiple_re: 3 wallclock secs ( 3.16 usr + 0.00 sys = 3.16 CPU) @ 69144.94/s (n=218498)
shift_re: 4 wallclock secs ( 3.11 usr + 0.00 sys = 3.11 CPU) @ 74248.87/s (n=230914)
unpack_re: 3 wallclock secs ( 3.21 usr + 0.00 sys = 3.21 CPU) @ 68071.03/s (n=218508)
unpack_split: 2 wallclock secs ( 3.13 usr + 0.00 sys = 3.13 CPU) @ 95474.76/s (n=298836)

まとめ:

inet_atonはやっぱり速いので、自分で書くのはやめよう。


557:デフォルトの名無しさん
06/04/05 13:42:14
v文字列以外では
・ inet_atonはpackしたIPアドレス("100.100.100.100"なら"dddd")を返すのに、他は整数(1684300900)を算出している。
・ "+"演算子は"<<"演算子より優先度が高いため($1 << 24)とカッコで括らなければならない。

一応 sub getRandIPString { join '.', int rand 256, int rand 256, int rand 256, int rand 256; } といったものを用意して
全てバイナリ文字列を出力するコードにしてからベンチ取ったけど、inet_atonが常に1位だった。

今更だけど、後で直接比較可能にするための前処理として保存しとけば速度関係無かったね。

558:デフォルトの名無しさん
06/04/19 06:59:49
Mac OS XでPerlを使っています。
Macで作成したテキストを処理したいのですが、改行コードがCRになるのでうまく処理できません。
LFでないため、全て1行として認識されてしまいます。

標準入力を常にLFとして読み込んだ後、それに対してマッチや置換を行いたいのです。
以下のように書いてみましたけどダメでした。

while (<>) {
s/\x0D\x0A|\x0D|\x0A/\x0A/g;
if (/aaa/) {
print;
}
}

出力されたデータはLFになりましたが、マッチはうまくいきませんでした。
何かいいやり方はないものでしょうか。

559:デフォルトの名無しさん
06/04/19 09:14:57
求めてるのは<>使う前の $/ = "\x0D"; か /aaa/m あたりかも

560:558
06/04/19 19:51:43
>559さん

入力時の区切り文字をCRに決めてやればいいんですね。
解決しました。ありがとうございました。

561:デフォルトの名無しさん
06/04/19 23:24:22
すいません。行のナンバリングをリクエストしてもよろしいでしょうか。

あいうえお(段落1)
かきくけこ(段落2)
さしすせそ(段落3)

たちつてと(段落4)
なにぬねの(段落5)
はひふへほ(段落6)

という文章があって、これを、

1:あいうえお(段落1)
2:かきくけこ(段落2)
3:さしすせそ(段落3)

1:たちつてと(段落4)
2:なにぬねの(段落5)
3:はひふへほ(段落6)

のように空行をはさんで新たにナンバリングを開始したいのですが方法が思い浮かびません。


562:デフォルトの名無しさん
06/04/19 23:59:01
言いたいことが分からんが新たにナンバリングを開始したいところで
ナンバリング用の変数を初期化して空行を出力するだけじゃないのか?

563:デフォルトの名無しさん
06/04/20 02:27:54
>>561は、単純にすべての行に通し番号でナンバリングするプログラムは作れるのか?

564:561
06/04/20 23:04:01
>563

あっ、はい。

my $i = 0;

while (<STDIN>) {

if (/^./) {
print ++$i;
print ": ";
print;

}

}
ちょっと冗長ですけど。

565:デフォルトの名無しさん
06/04/21 00:11:57
うーん、、、自分で作りたい?それとも誰かにサクッと作って欲しい?

566:デフォルトの名無しさん
06/04/21 10:46:46
>>564
そこまでかけるなら
else で $i = 0; を書けないか?


567:デフォルトの名無しさん
06/04/21 10:55:29
空行が来たらカウントをリセットする、というと、こんな感じ?

$n = 1;
while (<>) {
 $n = 1 if (/^\s*$/
 print "$n: $_";
 $n++;
}


568:デフォルトの名無しさん
06/04/21 10:58:13
あ、閉括弧とか忘れた。まあいいや。脳内で修正してくれ。

569:561
06/04/21 22:35:44
>566

elseを使っても結果が変わらないんです。
マッチがヘボいんでしょうか。

>567

実行させると入力がぶっとんでしまいました…

>565

いろいろ試してみたのですが、自分の力ではムリっぽいです…
あつかましいとは承知していますが、作っていただくと助かります。

570:561
06/04/22 19:48:05
出来てしまいました!

my $i = 0;
while (<STDIN>) {
 if (/^..+/) {
 print ++$i;
 print ": ";
 print;
 } else {
 $i = 0;
 print;
 }
}

else文で「my $i = 0;」にしていたのがまずかったようで、
空行になっても$iが初期化されなかったみたいです。
レス下さったみなさん、ありがとうございました。
おさわがせしました。
私ってPerlの才能ないのかな…

571:デフォルトの名無しさん
06/04/23 05:53:25
>>570
完成おめ!
才能がどうかは知らないけど、結局経験じゃないですかね?
俺も本スレで叩かれたりしながら勉強してますw

一応俺が用意してたスクリプト貼っておきます。。。
use strict;
my $c = 1;
open IN, 'filename';
while (<IN>) {
    (/^$/) ? $c = 1 : print $c++ . ':';
    print;
}
close IN;


572:561
06/04/23 12:42:55
>571

ありがとうございます。
自分のはだいぶ冗長だと思うので、用意していただいたスクリプトを参考にさせていただきます。
今自分の書いたものを見直してみると、if (/^./)でいいですよね...
恥ずかしい...

573:デフォルトの名無しさん
06/04/23 14:49:38
>>570
myはローカル変数の宣言。単なる代入では無いよ。
myを使うと、同名の新たな一時変数を作る事になる。
んで、詳しい条件は忘れたが、ブロック抜ける時とかに消える。

長いコードになると
「この変数名って他で使われて無かったっけ…?」
ってなるけど、my使えばそんな心配が減るワケ。

574:デフォルトの名無しさん
06/04/23 18:39:57
>>558

>>560では解決しちゃったみたいだけど、これ俺も知りたい。
コマンドラインから入力されたテキストの改行コードをLFに統一、
という前処理をしてからwhileループ処理をかますってできるのかな?
あんまりセパレータとか変えたくないんで。

575:デフォルトの名無しさん
06/04/23 21:25:04
>>574
>セパレータとか変えたくない

なんで?

576:デフォルトの名無しさん
06/04/23 22:10:27
>575

セパレータも一文字として認識されてしまわない?
回避する方法があればいいんだけど。

577:デフォルトの名無しさん
06/04/23 23:08:11
認識できるから区切れるんだが。
いまいち言いたいことが分からん。

578:デフォルトの名無しさん
06/04/23 23:40:26
メタキャラ「.」って改行を除く一文字にマッチするじゃん。
でも「.」もCRにマッチしちゃわね?
LF読み込むときと処理が変わっちゃうからイライラすんだよね。

579:デフォルトの名無しさん
06/04/24 00:10:50
自分の都合に合わせてセパレーター変えるなり置換するなりすりゃいいじゃん。

580:デフォルトの名無しさん
06/04/24 03:57:29
あーいう変数ってlocal出来ないっけ?

581:デフォルトの名無しさん
06/04/24 23:15:36
whileで読み込む前に処理しとくって、
できないってことでおk?

582:デフォルトの名無しさん
06/04/25 04:35:21
質問は質問スレ行け

583:デフォルトの名無しさん
06/05/01 22:52:12
Win32::GUI::ListView ソートメソッドないじゃん・・・orz

 た・・・す・・・け・・・て・・・・


584:デフォルトの名無しさん
06/06/15 22:54:05
りすとびゅーか...
なにもかもがな・・つ・・か・・し・・ぃ・・

585:デフォルトの名無しさん
06/06/16 20:37:02
一瞬、不治痛の電子帳票ソフトかと思った

586:デフォルトの名無しさん
06/07/09 11:10:16
初めまして。

浅知恵で掲示板の改造を試みています。
オートリンク機能付き掲示板に記事修正機能を追加したのですが、
記事修正をするたびに、文中にあるリンク先が
<A href=URLリンク(www.a.b.c)<) target=_blank>
URLリンク(www.a.b.c<)
と、タグが無制限に追加されていきます。

そこでお願いしたいのは、
記事修正時にファイルに保存されているデータ
----------------------------------------------
<A HREF=URLリンク(www.a.b.c)<)
----------------------------------------------
を一端
----------------------------------------------
URLリンク(www.a.b.c)
----------------------------------------------
というデータに戻すサブルーチンを作成したいのですが、
行き詰まっています。
よろしくお願いします。

オートリンク機能のスクリプトは以下の通りです。
***************************************************************
#オートリンク
sub auto_link {
my($msg) = $_[0];
$msg =~ s/([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#]+)/$1<A HREF=$2 target=_blank>$2<\/A>/g;
return $msg;
}


587:デフォルトの名無しさん
06/07/09 11:15:33
↑ ありゃ、文字がおかしい。

全角にしてありますが、Aタグです。
URLリンク(www.a.b.c) の後ろは、</A>

588:デフォルトの名無しさん
06/07/10 01:11:44
そういう時は表示時にオートリンクを適用すればいい。
保存時にいじっちゃうと後でいじりにくくなるというのは定説。
ファイル構造上、改行の置換とかは仕方無いと思うけどさ。

589:デフォルトの名無しさん
06/07/10 10:01:41
>>586

ようするに、すでに<A>タグ化されている部分を除外すればいいわけだな?

590:デフォルトの名無しさん
06/07/10 10:03:49
ああ、ごめん。>>586にいての>>588の意見を読んでなかった。
確かに保存時は生データのまま記録し置いて、閲覧時に
http:なんた

591:デフォルトの名無しさん
06/07/10 10:06:04
>>590
途中で送信しちゃった。

保存時は生で。閲覧時は「http:なんたら」の条件で抽出→<A>タグ化のほうが効率的だね。

592:586
06/07/10 14:07:06
みなさん、ありがとうございました。
発想の転換ですね。
私の堅い頭では思いつきませんでした。

保存時ではなく、表示時にオートリンクを適用でうまくいきました。
ありがとうございました。

593:デフォルトの名無しさん
06/07/18 22:59:04
俺は全く解らないので、申し訳ないけど誰かに頼みたいorz
ボタンを押したらカウントが増えるシンプルなシステムを作って欲しいです。

594:デフォルトの名無しさん
06/07/19 02:59:10
どこにでもあると思うが…

595:デフォルトの名無しさん
06/07/19 16:54:07
>>593

use CGI;
my $cgi=new CGI;
my $n=$cgi->param('n')+1;
print $cgi->header(-charset=>'Shift_JIS'),
$cgi->start_html(-lang=>'ja',-encoding=>'Shift_JIS',-title=>'simple count'),
$cgi->a({href=>"$ENV{'SCRIPT_NAME'}?n=$n"},$n),
$cgi->end_html;


596:デフォルトの名無しさん
06/07/20 00:02:04
>>593

<?php
if (! $HTTP_COOKIE_VARS{'Num'}) {
$start=0; $i=1; setcookie("Num",$i,time()+30);
} else {
$i=$HTTP_COOKIE_VARS{'Num'}+1;
setcookie("Num",$i,time()+30);
}
echo $start.$HTTP_COOKIE_VARS{'Num'}."<br>\n";
echo "<form method=POST action=><input type=submit value=count_up></form>\n";
?>


597:デフォルトの名無しさん
06/07/20 01:41:37
>>593
<input type="button" value="0" onclick="this.value++">

598:デフォルトの名無しさん
06/07/20 02:06:11
どんどん簡易な物になってくな

599:デフォルトの名無しさん
06/07/20 20:10:06
つーかスレタイに反してPerlですらなくなってるな
このスレ自体がアレなのは確かだが

600:デフォルトの名無しさん
06/07/21 00:49:26
待て待て、Web物とは一言も言ってないぞ?

# CUI
use Term::ReadKey;
binmode STDIN;
ReadMode 3;
print my $count = 0;
print "\r", ++$count while (defined ReadKey 0);
ReadMode 0;

# GUI(Perl/Tk)版
use Tk;
my $count = 0;
my $mw = MainWindow->new();
my $label = $mw->Label(-text => $count)->pack();
$mw->Button(
-text => 'Count up',
-command => sub { $label->configure(-text => ++$count) },
)->pack();
MainLoop;

601:デフォルトの名無しさん
06/07/21 12:46:48
Term::ReadKey を入れてないおいらが来ましたよ。

#!/usr/bin/env perl
print my $i = 0 ; $i ++ ;
system "stty -echo" ;
print "¥e[1K" . $i ++ while <STDIN> ;
system "stty echo" ;

このスクリプト ( hoge.pl )、perlcc が通ったのには笑った。@5.6.6
perlcc -o counter hoge.pl

602:デフォルトの名無しさん
06/07/21 13:24:24
なんで笑えるのかわからんが、もっと短くしてみた。
perl -e '`stty cbreak -echo`;print $i++,"\r" while getc'

603:デフォルトの名無しさん
06/07/21 13:49:37
cbreakはサポートしてないものもあるよ

604:デフォルトの名無しさん
06/07/21 17:11:49
>>602
いや system 関数ってみるからにコンパイルの時コケそうじゃないですか。

605:デフォルトの名無しさん
06/08/06 00:00:47
頭が混乱してきた。
ETRADEのポートフォリオのページを取得するスクリプトつくって。

6時間考えたけど、いっぱいいっぱい。だめぽ

606:デフォルトの名無しさん
06/08/06 00:29:53
既製品を探すという作業を飛ばしたようだね。

607:デフォルトの名無しさん
06/08/06 00:52:42
>>605 だけど。
やっとできたよ。

しばらく POSTとGETの仕組みと INPUTタブの仕組みを
忘れてた。



608:デフォルトの名無しさん
06/08/06 03:44:01
inputタブだってよ

609:デフォルトの名無しさん
06/08/08 10:10:47
ディレクトリ内にある.jpgファイルを全て
1.jpg, 2.jpg, 3.jpg, ... というように連番のファイル名に変換するプログラムを
つくって頂けませんか。
そのディレクトリには.jpgファイルしか置いてません。(全部変換する)
もともとのファイル名は、*****.jpg もしくは ******.jpg (*は数字)
という形です。
こういうプログラムを作るのにperlが適しているのかどうかはわからないのですが、
他に作成依頼できそうなスレがみつからなかったので。

お願いします。

610:デフォルトの名無しさん
06/08/08 10:16:02
folderの中にある複数の圧縮ファイル(zip, rar)の中のファイルの情報の一覧(text fileでOK)
を作ってくれるscriptがほしいです。

611:デフォルトの名無しさん
06/08/08 10:55:06
>>609
perl -e'my $i = 1; foreach(glob("*.jpg")) { rename $_, "$i.jpg"; $i ++;}'
動くかどうかはしらん

612:609
06/08/08 11:52:55
>611
できてるぽいです!
ありがとうございます。

613:デフォルトの名無しさん
06/08/08 16:23:26
アクセスしてきたPCのポートスキャンをするcgi
目的:自分のPCのセキュリティーチェックをしたいので

614:デフォルトの名無しさん
06/08/08 18:06:17
嘘付け

615:613
06/08/08 18:24:59
最初はIPアドレスを入力して入力されたIPをもつPCのポートスキャンができるようにとおもったのですが、
>>614さんのように邪推される方がいると思ったのでアクセスしてきたPCのポートスキャンということにしました。
さらにいうなら、IDパスワード認証をしてそのチェックを通過した人だけセキュリティーチェックできるようにお願いします。
もっともIDパスワードをさらしておいて他人のPCのポートスキャンができることも懸念されますが・・・・。。

616:デフォルトの名無しさん
06/08/10 16:45:15
>>610
while (<*>) {
 if ((/\.zip$/i) or (/\.rar$/i)) {
  open(AAA, "unrar l $_ |") || die "err";
  $list = <AAA>;
  close(AAA);
 }
}
こんなもんで、よろしいんじゃないですか?

617:デフォルトの名無しさん
06/08/24 20:33:41
perl -e '`stty cbreak -echo`;print $i++,"\r" while getc'

618:デフォルトの名無しさん
06/08/30 14:53:13
LINUXのCRONで動かしているPerlがあるんだが、自分自身2重起動を阻止したい。
リクエストお願いします。

619:デフォルトの名無しさん
06/08/30 15:34:33
>>618
例えばlockファイルを使う。perldoc -q lock

use Fcntl qw(:DEFAULT :flock);

sysopen(LCK, "/tmp/lockfile", O_WRONLY|O_CREAT) or die "open: $!\n";
flock(LCK, LOCK_EX|LOCK_NB) or die "flock: $!\n";

sleep 100;

620:デフォルトの名無しさん
06/08/31 19:03:19
なんじゃそりゃ

621:デフォルトの名無しさん
06/09/07 21:41:40
5分経過したら再認証のページに飛ぶものを作って下さい。
お願いします。。。

622:デフォルトの名無しさん
06/09/07 21:50:03
>>621
仕様がはっきりしなさ過ぎて無理

623:デフォルトの名無しさん
06/09/07 22:12:49
>622
タイムアウト処理だけでも無理ですか?

624:デフォルトの名無しさん
06/09/07 23:40:42
同じ学校のやつか?

964 名前:デフォルトの名無しさん 投稿日:2006/09/07(木) 21:36:27
質問です!
ログインして10分経過後、再認証を行なうプログラムについて教えて下さい。
学校の課題なんですがさっぱり分りません。。。


625:デフォルトの名無しさん
06/09/08 00:13:21
マルチかよ

626:デフォルトの名無しさん
06/09/08 16:15:04
>>623
sleep(300);

627:デフォルトの名無しさん
06/09/08 19:48:59
>>621

 鯖に「ID=************が何時何分何秒にログインした」ってファイルを
作っておいて、その人がCGIにアクセスするたびに最終ログイン時刻を
チェックする。規定時間をオーバーしていると、ログイン画面に飛ばす。

って感じのやつはダメ?

628:デフォルトの名無しさん
06/09/12 05:37:49
そーいや前に、タイムアウトの処理を
HTMLのタグでやってるの見たことある

ブラウザ側で簡単に回避されるっての…w

629:デフォルトの名無しさん
06/10/22 15:34:50
マルチにマジレス カコワルイ

630:デフォルトの名無しさん
06/10/23 11:35:28
質問させてください

「開始」と「終了」の間に入っている文字列をリンクアドレスにするにはどうすればいいですか?

たとえば$STR="開始test.html終了"; とあったとき
出力結果が

<a href=test.html>test.html</a>になるようにしたいんです。


$START="開始";
$END="終了";


631:デフォルトの名無しさん
06/10/23 12:07:01
2chに書き込むスクリプトってどうやるんですか?

632:デフォルトの名無しさん
06/10/23 12:34:24
2ちゃんねる2GETスクリプトの改良おねがいします
スレリンク(tech板)

633:デフォルトの名無しさん
06/10/23 12:46:54
Perlでつくってください

634:デフォルトの名無しさん
06/10/23 13:30:24
>>630
正規表現で一発やん

635:デフォルトの名無しさん
06/10/23 14:49:23
>>634
ごめんなさい、わからないんです。
とりあえず、ここまでは出来ました
「開始」と「終了」に挟まれる$1を抽出した後、その$1をURL形式に変えてアドレスにして置き換えていきたいんです。

例えば
$in{'data'}="開始なにか終了hogehogehoge開始てすと終了"だったとしたら
これが

$in{'data'}="<a href=URLリンク(hoge.com)なにか</a>hogehogehoge<a href=URLリンク(hoge.com)てすと</a>"

みたいな形式に置き換えたいんです


use URI::Escape;
$START="開始";
$END="終了";
$SEARCHADD="URLリンク(hoge.com)

while ($in{'data'}=~ m/$START(.*)$END/g) {
$output = $1;
$urikeyoutput = uri_escape($output);
$in{'data'} =~ s/$START$output$END/<a href=$SEARCHADD$urikeyoutput>$output<\/a/g;
}

636:デフォルトの名無しさん
06/10/23 16:03:57
>>635
> while ($in{'data'}=~ m/$START(.*)$END/g) {

これを

while ($in{'data'}=~ m/$START(.*?)$END/g) {

ってすりゃいいんじゃないか?
(.* じゃなくて .*? ってことね)


637:デフォルトの名無しさん
06/10/23 16:23:43
>>636
変えてみましたけど、無理でした
while ($in{'data'}=~ m/$START(.*?)$END/g) { の時点で拾ってきてくれてないみたいです
書き方おかしいですか?

638:デフォルトの名無しさん
06/10/23 16:53:05
>>637
while ($in{'data'}=~ m/$START(.*)$END/g) { ... の中で更に
$in{'data'} =~ s/$START$output$END/ ... なんてしてるから
マッチ開始位置がおかしな事になる。下の一文で済む。

$in{'data'} =~ s{\Q$START\E(.*?)\Q$END\E} {
  my $url = $1;
  my $query = uri_escape($url);
  qq|<a href="$SEARCHADD$query">$url</a>|;
}eg;

639:デフォルトの名無しさん
06/10/23 16:58:47
>>638
ご回答ありがとうございます。
その方法で問題なく出来ましたが

開始、終了のペアが2つ以上でてきた場合エラーが発生します。

$in{'data'} ="開始テスト1終了開始テスト2終了";
だったとき

最初の開始から 最後の終了までを1つだと思っているみたいです

640:デフォルトの名無しさん
06/10/23 17:16:50
>>639
大方 (.*?) を (.*) と写し間違えているんだろう。

641:デフォルトの名無しさん
06/10/23 17:19:31
>>640

>>638さんのものを、そのままコピペして使ってるのですが
>>639に書いた症状が出ます

642:デフォルトの名無しさん
06/10/23 18:37:03
URLリンク(infosys.gsid.nagoya-u.ac.jp)

643:デフォルトの名無しさん
06/10/31 00:40:22
データが壊れないカウンタを20行で作ってみてください

644:デフォルトの名無しさん
06/10/31 01:27:13
なんのカウンタだよアホ

645:デフォルトの名無しさん
06/10/31 02:57:14
ロックファイルを作りながら
カウントしていくだけのプログラム

646:デフォルトの名無しさん
06/11/01 13:23:42
だから何をカウントするんだよ。
CGIなら板違いだ

647:デフォルトの名無しさん
06/11/01 17:57:33
++$count;

完成!


648:デフォルトの名無しさん
06/11/03 11:41:54
画像の横幅を習得するにはどうすればいいんですか?

649:デフォルトの名無しさん
06/11/03 12:19:20
>>648
search.cpan.org

650:648
06/11/03 12:26:30
すみませんが、自己解決しました。

651:デフォルトの名無しさん
06/11/03 13:29:13
解答が出たあとに自己解決かw

652:デフォルトの名無しさん
06/11/03 19:53:30
>>643
これでいいんか?

open my $fh, ">>count.dat";
print $fh "\n";
close $fh;
print "Content-Type: text/plain\n\n";
print -s "count.dat";

653:デフォルトの名無しさん
06/11/03 21:29:16
>>652
壊れないけど取りこぼすな。でも「壊れない」条件は満たしてるからいいのか。
軽いカウンタならutimes使って作るといいよ。inodeしか触らない。

654:デフォルトの名無しさん
06/11/06 20:34:43
>>653
utimes?
utimeじゃなくて?

ていうかどちらにしろファイルのタイムスタンプ変更するだけの関数だから
カウンタにはできないのでは?


655:デフォルトの名無しさん
06/11/07 02:45:23
>>654
タイムスタンプは time_t 型の数値を保存できる場所でな。

656:デフォルトの名無しさん
06/11/08 14:02:06
>>655
あ。なるほど。タイムスタンプを無理矢理カウンタとして使うのか。
たしかにできるけど、強引な方法だな・・・。


657:デフォルトの名無しさん
06/11/08 21:11:30
それどうやって排他するん?

658:デフォルトの名無しさん
06/11/08 22:21:24
>>657
普通にflockなりなんなりお好きな方法で。

659:デフォルトの名無しさん
06/11/12 23:53:28
@CSV = <INCSV>;
$line_amount = @CSV + 1;
$lines = do { local $/; <INTEXT> };
@Aitems = map {(split '\t', $_, 2)[0]} @CSV;
@Bitems = map {(split '\t', $_, 2)[1]} @CSV;
@A = @Aitems;
@B = @Bitems;
chomp (@B);
for ($i = 0; $i < $line_amount; $i++){
$lines =~ s/$A[$i]/$B[$i]/g;
}
print OUT $lines;
-------------
タブ区切りで、検索文字列[TAB]置換文字列
というテキストを作って、それを読み込んで置換するスクリプトなのですが、
一応動作はするものの、置換文字列に $1, $2 など後方参照の変数がそのまま
文字列として出てきてしまいます。これを展開できるようにするには
どうすればいいのでしょうか。

660:デフォルトの名無しさん
06/11/13 11:16:41
/e

661:デフォルトの名無しさん
06/11/13 17:33:14
>660
だめでした。
$lines =~ s/$A[$i]/$B[$i]/ge;

置換失敗、($1)という文字列が出ます
s/「(.*?)」/($1)/ge;

こういうのは置換成功(eなしで問題なし)
s/(あ)\1/嗚呼/g;

662:デフォルトの名無しさん
06/11/14 16:02:15
/ee

663:リクエスタ
06/11/16 23:38:52
横一列に並んだ単語を縦一列に直すスクリプトをリクしたいっす


↓ 単語が横一列になっているファイルを(ファイル名は例えば sample1.txt )
globe apple captain delicate baseball e-mail family

↓こんな感じに縦列に並べ変えたい
globe
apple
captain
delicate
baseball
e-mail
family

664:デフォルトの名無しさん
06/11/16 23:44:17
エディタで空白を改行に置換したらいいやん

665:663
06/11/17 00:00:18
あ、そっかwwww

sed 's/ /\n/g' sample1.txt > sample2.txt
でできましたw

666:デフォルトの名無しさん
06/11/17 12:04:26
my (%data);
my $num1 = 3;
my $num2 = 4;
my $moji =tetra;

$data{$moji} = [ $num1, $num2 ];

print("%d",$data{$moji});


perl 実行
%dARRAY(0x85a7c28

何かよくわからない結果になってしまったのですが・・・

667:デフォルトの名無しさん
06/11/17 12:09:58
こっちで聞いても同じだぞ

668:デフォルトの名無しさん
06/12/06 15:03:15
掲示板(KENT e-pad)を10分毎に監視して
新規の書き込みがあった場合、内容をメールで送るスクリプト作って下さい。


669:デフォルトの名無しさん
06/12/06 16:19:01
>>668
じゃあ雛型だけ。あとは getbbs() と sendmail() を作れば完成だ。がんばれ。

#!/usr/bin/perl -w

use strict;

my $olddata;
for (;;) {
 # 掲示板の内容を取得する。
 my $data = getbbs();
 if (defined($olddata) && $data ne $olddata) {
  # メールを送信する。
  sendmail($data);
 }
 $olddata = $data;
 sleep 60 * 10;
}


670:デフォルトの名無しさん
06/12/06 16:35:42
ぎゃふん!

671:デフォルトの名無しさん
06/12/06 17:34:31
sendmail のサンプル

sub sendmail {
 my $data = shift;
 open(F, '| /usr/lib/sendmail -t >/dev/null 2>&1') or die;
 print F "From: hoge\@fuga.com\n";
 print F "To: moga\@mugu.com\n";
 print F "MIME-Version: 1.0\n";
 print F "Content-Type: text/html\n";
 print F "\n";
 print F $data;
 close(F);
}

但し /usr/lib/sendmail がなければならない。
(つまりこれは主に UNIX 系 OS 向け。Windows なら Cygwin 環境で動くかも)。


672:デフォルトの名無しさん
06/12/06 18:26:52
>>669>>671
有難う。
getbbs()
も雛形お願いします。

673:デフォルトの名無しさん
06/12/07 14:00:49
getbbs のサンプル

use LWP::Simple; # これはプログラムの最初に書く。

sub getbbs {
 my $url = 'URLリンク(...)<) をセットしておくか
perl プログラムの中で $ENV{'http_proxy'} = 'URLリンク(proxy.hoge.com:8080)';
をやっておく)。
LWP::UserAgent を使って自分で色々する場合は $ua->proxy(...) のような
設定方法も使える。


674:デフォルトの名無しさん
06/12/07 15:38:14
>>673
ありがとうございます。
試してみます。

675:デフォルトの名無しさん
06/12/08 23:46:45
組織名 人名 番号(英字3つの後に数字7つ)
組織名 人名 番号(英字3つの後に数字7つ)
という風に並んでるファイルから
番号だけを取り出して
07.番号(英字3つの後に数字7つ)
と書き換えたいのですがお願いします

また、自分でもこういう丸投げはやっぱりよくないとは思うのでもし
「そんなのここ見りゃかいてあるから」みたいなサイトがあれば教えてください

676:デフォルトの名無しさん
06/12/09 00:06:03
「正規表現」は知ってる?
各行の最後の10文字の前に「07.」を割り込ませる、って考えでどうだ?

677:デフォルトの名無しさん
06/12/10 09:25:32
>>666
printfの間違い。
$data{$moji}は配列へのリファレンスになっているんだから、
$data{$moji}[0]なり$data{$moji}[1]なりにしないとそうなる罠。

678:デフォルトの名無しさん
06/12/10 21:28:17
use Kakiko::Test;

679:デフォルトの名無しさん
06/12/15 19:41:49
>>675
perl -ne 'if(/\s+(\w{3}\d{7})\s*$/){print "07.$1\n"}' hoge.txt


680:デフォルトの名無しさん
06/12/19 23:02:55
FORMで受け取った文字列をCSVファイルから検索して表示させるスクリプト下さい

681:デフォルトの名無しさん
06/12/20 09:56:03
grep

682:デフォルトの名無しさん
06/12/21 14:24:02
「1からnまでの乱数をn個発生させ、小さい方から並べるプログラム」を作成する。
nの値をさまざまに変えて実行時間を計測せよ。
クイックソートの実行時間が理論値O(n log2 n) となるかどうか検証せよ。

683:デフォルトの名無しさん
06/12/21 14:29:11
このデータと解析結果、検証の結果をレポートで提出せよ。

684:デフォルトの名無しさん
06/12/22 02:32:04
>>681
便乗でスマンがFORMからのデータの受け取りを
cgi-lib.plに頼らない為のヒントを教えてほしい。

685:デフォルトの名無しさん
06/12/22 03:05:30
getならurl末尾、postなら標準入力
意地悪じゃなく調べればいくらでもあると思うんだが…

686:デフォルトの名無しさん
06/12/22 10:23:07
CGI.pm使えよ

687:デフォルトの名無しさん
06/12/22 10:58:44
>>684
CGI, 環境変数, あたりでぐぐれ

688:デフォルトの名無しさん
06/12/22 22:53:42
>>685-687
ありがとね。
参考書に「難しいからcgi-lib.pl使え」ってあったから
勝手にその事については載ってないと思った。
まぁ習い始めたばかりだけど、調べたりなかったのは反省してる orz

689:デフォルトの名無しさん
07/01/11 00:57:44
1分に一度指定板のスレッド一覧を取得して更新があれば差分だけダウンロードして元のファイルに付け足して保存する。
ってのをPerlで作ってくれ。
いや、作ろうとしたんだよ。でも2chのページにアクセスすると403がでてな。

690:デフォルトの名無しさん
07/01/11 01:27:11
>>689
オイスター作戦でぐぐれ。

691:デフォルトの名無しさん
07/01/11 01:41:41
つまりMonazilla MLに参加してるツールに成りすませばいいってこと?
それとも不可能ってことかな?

692:デフォルトの名無しさん
07/01/11 02:08:36
リクです。
youtube内にアップされている動画のタグ情報を引っ張って来れるプログラムをお願いします。

#!/usr/bin/perl -w

use strict;
use LWP::UserAgent;

my $url = shift @ARGV;

my $ua = LWP::UserAgent->new();
$ua->agent('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1);');


my @tags = &getTag($url);
print join(",", @tags), "\n";

sub getTag {
    my ($url) = @_;
    my @tags;
    my $content = $ua->get($url)->content;
    while($content =~ /href=\"\/results\?search_query=(.+?)\"/g){
push(@tags, $1);
    }
    return(@tags);
}

ここまで行ってるのですが、入力する動画URLの取得を自動化したいんです。

693:デフォルトの名無しさん
07/01/19 10:09:16
http:// から始まるIPとホストが書いてあるアドレスを抽出したい場合の
IPとホストの表現を教えてください。



694:デフォルトの名無しさん
07/01/19 10:52:03
URLリンク(www.din.or.jp)
あるいは
use Regexp::Common; して $RE{URI}{HTTP}

695:デフォルトの名無しさん
07/01/19 17:08:25
>>694
ありがとうございます

696:デフォルトの名無しさん
07/01/20 23:57:02
HP等の日記にパスワードがかかっていた場合、
そのパスワードを解析してくれるソフト作ってください。。。

697:デフォルトの名無しさん
07/01/21 00:17:41
不正アクセス禁止法違反。

698:デフォルトの名無しさん
07/01/21 03:56:05
すべてのパスワードを解ける解法があったとしても
すべてのパスワードを解けるプログラムやスクリプトは絶対にない

699:デフォルトの名無しさん
07/01/21 06:00:58
>>698
時間を掛ければ何でも解けるのでは?
但し何万年とか掛かるかも知れないが。


700:デフォルトの名無しさん
07/01/25 01:00:43
>>1

微分や積分するプログラムってperlで作れる?

701:デフォルトの名無しさん
07/01/25 01:51:10
数値微分/数値積分なら公式は山ほどあるだろ。

マセマティカ並の数式処理能力が欲しければ数学科大学院へでも池

702:デフォルトの名無しさん
07/02/06 21:56:03
Win NTでデフォルトのプリンター名を取得したいのですが。

703:デフォルトの名無しさん
07/03/16 00:51:22
重機ネット上にあるDBから
氏名と電話番号を一覧表示するスクリプトを作ってください


704:デフォルトの名無しさん
07/03/16 16:19:10
>>703
まず重機ネットのDBから氏名、電話番号の入ったデータをCSV形式で貰ってきます。
その後次のスクリプトを動かしてください。

#!/usr/bin/perl -w

use strict;

system('cat ファイル名');

以上です。


705:デフォルトの名無しさん
07/03/21 01:14:58
重機ネット上にあるDBに対してCRUDするスクリプトを作ってください。

706:デフォルトの名無しさん
07/03/21 17:37:51
一休さんかよ

707:デフォルトの名無しさん
07/03/26 17:57:58
とんち比べですな。


708:デフォルトの名無しさん
07/04/25 21:54:31
数字を月の名前に変換するコードができました!!

@Month = ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");

sub mmm {
return $Month[(shift)-1];
}

@Month を切り替えればいろいろな名前に変換できると思います。
@Month = ("JAN.", "FEB.", ……
@Month = ("睦月", "如月", ……


709:デフォルトの名無しさん
07/04/26 12:04:47
釣れまsk?

710:デフォルトの名無しさん
07/04/26 16:47:33
どなたか、ナンプレを解くスクリプト作って下さいませんか?

711:デフォルトの名無しさん
07/04/26 19:12:12
sudoku solver でググれ

712:デフォルトの名無しさん
07/04/27 12:52:11
>>708
perl -MDate::Manip -e 'print UnixDate(ParseDate("today"),"%B"),"\n";'

713:708
07/04/27 20:32:47
利点としては:
・ハッシュを使うコードよりも軽量・高速。
・「01」とか、ゼロ付きの数字にも対応。

欠点としては:
・逆引きができない。

というわけで、"JAN.."とか"睦月"から数字への変換と、数字から名前への変換、
両方ともできる粋なコードをおながいします。


714:デフォルトの名無しさん
07/05/03 07:48:33
質問箱に書き込んだのですが、スレタイからするとこちらの方がよいかもと思い、書き込ませていただきます。
マルチポストをお許し下さい。

perlはまるっきりの初心者です。どなたかお知恵を貸して下さい。
2つのファイル a.txt と b.txt を比較して、条件にあった行を抽出、出力するスクリプトを作りたいのです。

具体的には、
[a.txt]
ID, field1, field2
1, 5.8, 7.3
2, 6.3, 8.2
3, 3.2, 4.1
4, 4.8, 4.0
5, 8.3, 10.2

[b.txt]
ID, field1, field2
1, 6.8, 7.7
3, 4.3, 5.5
4, 5.9, 4.9

というファイルがあったとき、b.txt のIDに数値が存在する行だけを a.txt から抽出して a2.txt として保存したいのです。

[a2.txt]
ID, field1, field2
1, 5.8, 7.3
3, 3.2, 4.1
4, 4.8, 4.0

と言った具合にです。よろしくお願いします。

715:714
07/05/03 08:04:26
自己レスです。
質問箱の方で回答を頂きました。マルチポスト失礼しました。
あ、でも他のやり方もあるぞ、というのがあったら教えて下さい。勉強の題材にさせていただきます。

#!/usr/bin/perl
use strict;
use warnings;
open my $a, '<', 'a.txt' or die;
open my $b, '<', 'b.txt' or die;
my %ids = map { $_ => 1 } map { (split /,/)[0] } <$b>;
while (<$a>) {
my $id = (split /,/)[0];
print if $ids{$id};
}

716:デフォルトの名無しさん
07/05/04 04:45:07
>>715
$aと$bはmyの対象外の特殊な変数だからサンプルコードだとしても変数として使うのは止めたほうが良い。

717:デフォルトの名無しさん
07/05/24 22:34:27

maildrop によって転送されたメールが画像添付ファイルだった場合に、添付画像だけを除去してくれる perl/php スクリプト

...ってスグに書けますスか?

718:デフォルトの名無しさん
07/05/27 02:18:19
はい。

719:デフォルトの名無しさん
07/05/30 00:45:44
>>718
くれくれで申し訳ないのですが、どうか作っては下さいませんでしょうか...?

720:デフォルトの名無しさん
07/06/05 21:10:30
>>719
どのくらい払ってくれる?

721:デフォルトの名無しさん
07/06/06 17:30:47
>>720
相場はいかほど?


722:デフォルトの名無しさん
07/06/06 19:07:26
とりあえず工数の見積もりに1万5千円ほどいただきます。

723:デフォルトの名無しさん
07/06/07 09:51:36
>>722
なんと...見積もりだけでそんなにかかるとわ。
もう少し安くならないの?

724:デフォルトの名無しさん
07/06/07 16:06:52
今なら、なんと、お見積もりが、ご奉仕価格の 1 万 4999 円!

725:デフォルトの名無しさん
07/11/30 23:14:49
このスレ、突然廃れたんだな。直前まで賑わってたみたいだが、自作自演でもやってたか?

726:もつ ◆hS9D2mmxqU
07/12/25 11:20:24
保守?

727:デフォルトの名無しさん
08/01/10 02:10:56


728:デフォルトの名無しさん
08/01/10 10:30:50
Amazonのマーケットプレイス画面をgetしたいのですが、
URLリンク(www.amazon.co.jp)
にPerlでアクセスすることが出来ません。
認証とかが必要なのでしょうか・・・・・・・。

729:デフォルトの名無しさん
08/01/10 18:13:20
そりゃあ、自分のアカウントデータのやりとりは必要だろう

730:anonymous
08/01/26 14:13:12
2chの特定のスレURLを任意で指定し、
すべての投稿から、「すでに投稿された文面が再度登場していたら、
その数だけレス番付きで抽出する」
というものはできないでしょうか。

要は何がやりたいのかと言うと、
「スレッドがコピペ投稿だらけ」になっており、
レス削除要請を行いたいのです。
ただ、そのコピペの数が尋常じゃないので抽出が困難なのです。
「文面の95%が一致していたらコピペとみなす」機構が嬉しいです。

731:デフォルトの名無しさん
08/01/26 19:37:04
95%で、無関係の文章が巻き込まれたら嫌だなぁ。

って話はとりあえず置いといて、検索してたら
String::Trigram とかいうモジュールがヒットした。
この辺使えば作れるのかな?

あとはスパムフィルタ関連の資料か。
URLの有無で判定するタイプもあるらしいから
そういうタイプのフィルタは参考にはならないかも知れないけど。

732:デフォルトの名無しさん
08/01/26 22:04:23
コピペ連投だと行頭の空白とかが混じることがあるから、
文字の先頭から末尾までが一致していたらアウト、という判定でいいんじゃね。
そういうの欲しいならRubyスレで頼むほうが早いかもよ。


733:デフォルトの名無しさん
08/01/30 01:12:36
指定したファイル以外を消去する作って!

734:デフォルトの名無しさん
08/01/30 02:21:14
>733
それだけじゃ何をどうすれば良いのか分からんな。
「カレントディレクトリ内にある指定したファイル以外を消去」だとすれば

perl -e"for (glob '*'){$_ eq $ARGV[0] or unlink $_}" ファイル名

で出来るが、サブディレクトリは多分掘らない。

735:733
08/01/30 05:19:52
カレントディレクトリだけでOKです。
ありがとう 
今はこんな感じで改造しています。
いろいろしないといけないんですが
仮に指定したファイルがカレントディレクトリになかった場合とか
消去を確認するための方法とか ファイルを複数指定したりとか

perl のコマンドに詳しい本って
なにかありますかねー(ネットでも調べていますが)

#!/usr/bin/perl
print "指定ファイルは?";
$file = <STDIN>;
for (glob '*'){$_ eq $ARGV[0] or unlink $_} $file

736:デフォルトの名無しさん
08/01/30 05:52:04
perl の関数一覧なら perlfunc ですぐ見れる

737:デフォルトの名無しさん
08/01/30 05:56:58
>735
つーかマテ、その改造コード間違ってるんじゃねーか。
$file が全く関係ないところに書かれてる。

そのコードじゃカレントディレクトリ全部削除されるぞ。
$file = <STDIN>; と書くんだったら、
for (glob '*') { $_ eq $file or unlink $_ } にしなきゃ。

$ARGV[0] はコマンドラインからの引数な。
>734 はファイル名を引数として渡してる。

738:733
08/01/30 08:29:20
>>737
あー ミスでしたか
コマンドとか引数とか覚えないといけないところが
まだまだありますな
>>736
perlの関数 ありがとう  
 

739:デフォルトの名無しさん
08/03/25 20:19:49
任意のフォルダに入ってるexeファイルを起動するスクリプトがほしいです。

740:デフォルトの名無しさん
08/03/26 12:11:44
>739
その「任意のフォルダ」はコマンド引数で指定すれば良いのか?
「任意のフォルダ」に.exeファイルが複数入ってる場合はどうすれば良いんだ?

741:デフォルトの名無しさん
08/06/09 15:23:34
ActivePerlで
(擬似)子プロセスにてある条件を満たすと(sleep5とかでもなんでもいい)、親プロセスのTKウィジェットに反映する(リストボックスに一行追加とか)するスクリプトください

742:デフォルトの名無しさん
08/06/17 09:54:41
URLリンク(www.linkrr.com)
みたいな複数のURLアドレスを一気に開くことのできるスクリプトが欲しいです

743:デフォルトの名無しさん
08/10/11 18:59:15
過疎ってるなー
DBD::CSV使って、
execsql.pl -noheader "SELECT T1.ROW1, T2.ROW3 FROM temp1.txt T1 temp2.txt T2
WHERE T1.ROW1 = T2.ROW2 AND T1.ROW2 = 'abc';" > result.txt
みたいに使えるスクリプト誰か作って。

744:デフォルトの名無しさん
08/10/11 19:05:12
間違えた
col1 col2 か
SQL初心者な物で

745:デフォルトの名無しさん
08/10/11 22:08:41
今日も perl でエロ画像収集!
明日も perl でエロ画像収集!
エロ画像収集言語 perl 万歳!

746:デフォルトの名無しさん
08/10/12 13:49:53
>>743だけど、DBD::CSVにバグがあった
やってらんねー
結局できたけど

747:デフォルトの名無しさん
08/10/26 08:58:18
ここでperlをPHPに変換とかしてくれる?

748:デフォルトの名無しさん
08/10/26 12:55:13
ばっちこい!

749:デフォルトの名無しさん
08/10/26 13:08:10
600行くらいあるんだけど・・・

750:デフォルトの名無しさん
08/10/26 14:31:15
情報後出しするやつは面倒だからお断りします

751:デフォルトの名無しさん
08/10/29 19:22:48
偶数行と奇数行を入れ替えるスクリプトをお願いします。

出力例)
$cat test.dat







スクリプト実行後
$cat test.dat








752:デフォルトの名無しさん
08/10/29 21:16:39
perl -pe 'print scalar <>'

753:デフォルトの名無しさん
08/10/30 07:17:55
my $old ;
while (<>){
if ( $.%2 != 0 ){ $old = $_ ; next ; }
print $_, $old ;
undef $old ;
}
if ( defined $old ){ print "odd\n", $old ; }


754:デフォルトの名無しさん
08/11/14 20:58:20
list.txtファイルに検索をかけたいキーワードを記入し
そのリストのキーワードを元にgrepみたいな動作をするスクリプト

listファイルの中身
$cat list.txt
aho
baka
test

検索をかけたいファイル(test.txt)の中身
$cat test.txt
aho 1
baka 2
manuke 3
test 4

実行結果
$./grep.pl
aho 1
baka 2
test 4

よろしくお願いします。


755:デフォルトの名無しさん
08/11/14 21:24:33
#!/usr/bin/perl
sub slurp {
    local ($/, @ARGV) = (wantarray ? $/ : undef, @_);
    return <ARGV>;
}
my $keyword_file = "list.txt";
my $target_file = "test.txt";
my @keywords = slurp($keyword_file);
my $regex = join "|", map { chomp; "\Q$_\E" } @keywords;
$regex = qr/$regex/;
open my $fh, "<", $target_file;
for my $line (<$fh>) {
    print $line if $line =~ $regex;
}
close $fh;

756:デフォルトの名無しさん
08/11/14 22:00:26
>>755 クールで惚れた

757:デフォルトの名無しさん
08/11/15 08:37:43
>>755
ありがとうございました!

758:デフォルトの名無しさん
08/11/15 09:13:35
朝っぱらからコードゴルフ
% perl -lne ' print if $t{ ( split )[0] } ++' list.txt test.txt
ま、区切り文字が全角スペースだと動かんのだがね。全角スペースに拘るなら
% perl -lne ' print if $t{ (/^(\w+)/)[0] } ++' list.txt test.txt


759:デフォルトの名無しさん
08/11/16 01:29:32
dmain.cpp
Note: including file: d:/projects/game/include\common.h
Note: including file: d:/projects/game/include\product.h
Note: including file: d:/projects/etc/psdk/include\WindowsX.h
Note: including file: d:/projects/etc/psdk/include\windows.h

こういうファイルを

dmain.obj: \
/cygdrive/d/projects/game/include/common.h \
/cygdrive/d/projects/game/include/product.h \
/cygdrive/d/projects/etc/psdk/include/WindowsX.h \
/cygdrive/d/projects/etc/psdk/include/windows.h \
dmain.cpp

こんな風にするスクリプトってどうやるの?

760:デフォルトの名無しさん
08/11/16 14:36:30
759は汎用性が必要だから、ファイル名とかドライブレターとかも関係なく動かせるのをお願いします


761:デフォルトの名無しさん
08/11/16 14:45:05
マルチしといて、動かなかったら注文付けんの?
win の人だったらワンライナーはシングルクォートの代りにダブルクォートにすれば良いよ。

762:デフォルトの名無しさん
08/11/29 21:11:06
入力フォームに入力して送信を押したら
hogehoge.cgi?入力された言葉

というように表示してくれるスクリプトを作ってほしいのですが
どなたか作ってもらえませんか?

763:デフォルトの名無しさん
08/12/01 13:11:03
print "Content-type: text/html €n€n";
print "hogehoge.cgi?入力された言葉";

764:デフォルトの名無しさん
08/12/01 23:28:02
> Perlでリクに答えるスクリプトを作るスレ
リクといえば、大石 りく。赤穂藩家老大石内蔵助良雄の妻。
そろそろ討ち入りの時期です。
Perlでリクにどうやって応えられるのか、スレが立って足掛け4年。
そろそろ、リクを喜ばしてみれ。

765:デフォルトの名無しさん
08/12/02 02:36:05
>>764
猛烈に面白くない

766:デフォルトの名無しさん
08/12/02 19:00:24
椎名りくは引退したの?

767:デフォルトの名無しさん
08/12/14 00:12:00
ほすほす

768:デフォルトの名無しさん
09/01/09 01:04:58
保守がてら

いつまでたっても彼女ができないのですが、
バレンタインデーまでに(3次元の)彼女ができるスクリプトを作ってもらえませんか

769:デフォルトの名無しさん
09/01/09 01:18:29
3次元とか言ってる時点でお前には彼女なんて出来ないw

770:デフォルトの名無しさん
09/01/13 19:50:17
>>768
バカだな。バレンタインデーまでにじゃなくてさ
バレンタインデー当日にチョコと一緒に告白される方が絶対いいだろ

771:デフォルトの名無しさん
09/01/14 01:17:26
>>768
じゃあそういう感じのスクリプトをお願いします!
できれば、彼女ができる日付を選べる感じで

772:デフォルトの名無しさん
09/01/14 17:40:36
>>771
バレンタインデーと言っておいて日付を選べる感じとはいかこれに

773:デフォルトの名無しさん
09/01/15 00:46:54
彼女ができる日が可変、
チョコがもらえるのは2月14日で固定

774:デフォルトの名無しさん
09/01/15 00:48:19
備考:
俺が事前に彼女を作りたいのは、
「気合入れて作るから楽しみにしててね」といわれたいからだ

775:デフォルトの名無しさん
09/01/21 13:09:37
1つのフォームに改行を使って複数の単語を書き、それを受け渡して単語毎に並べるようなのって可能でしょうか?
$word[$_]のようなのでそれぞれの単語を分けたいのですがなかなか出来ません。
ご教授頂けますと有り難いです。

以下のような感じです。

┌───┐
│あいうえお │
│かきくけこ │(←textarea)
│さしすせそ │
└───┘

 ↓受け渡し↓

あなたの記入した単語は
1つ目[あいうえお]
2つ目[かきくけこ]
3つ目[さしすせそ]
の3つです。

のような感じです。

どなたか宜しくお願い致します。

776:デフォルトの名無しさん
09/01/21 13:18:17
>>775
改行でsplitしたら?改行コードに気を付けないといけないけど、それで問題ないと思う。

777:デフォルトの名無しさん
09/01/21 13:51:07
>>776
ありがとうございます。
調べてみます。

778:デフォルトの名無しさん
09/01/21 20:39:36
>>776
すみません、やっぱりもう少し詳しくお願い出来ませんでしょうか?

779:775
09/01/21 22:18:12
現在このような感じです。

#変数[$word]を受け渡し
@text = split(/\n/, $word);

これを表示させたいのですが、どの様にしたら改行毎に一つずつ表示出来るのでしょうか?
そもそも上ので出来るのでしょうか?

すみませんが宜しくお願い致します。

780:デフォルトの名無しさん
09/01/21 23:45:59
textarea っていうのは、html の textarea のことか?
だったら html の textarea の使い方を調べなさいよ。
html すら知らないで perl でwebプログラミングなんて無謀すぎる。

781:775
09/01/22 00:32:14
textareaはわかります。

ですが、@textの改行された分だけ(例えば3回改行されていた場合)並べて表示させる方法がわかりません。

例えば
あいうえお
かきくけこ
さしすせそ
を入力したとしてそれを一つずつ表示させるためにはどうしたら良いのでしょうか?

1行目
<textarea>あいうえお</textarea>
2行目
<textarea>かきくけこ</textarea>
3行目
<textarea>さしすせそ</textarea>

のように一つずつ分けて、書かれた行数分だけループさせて書きたいのですが、教えていただけないでしょうか?
説明不足で申し訳御座いませんが、宜しくお願い致します。

782:デフォルトの名無しさん
09/01/22 16:34:45
for 文か foreach 文をつかえ。

for ($i = 0; $i < $#text; $i++) {
  print "<textarea>$text[$i]</textarea>";
}

foreach $tt (@text) {
  print "<textarea>$tt</textarea>";
}

まず URLリンク(www.tohoho-web.com) ここでも読んで
perl で使える命令を全部、頭に叩き込んでおけよ。

783:デフォルトの名無しさん
09/01/22 16:37:56
おっと...

誤: for ($i = 0; $i < $#text; $i++) ・・・
正: for ($i = 0; $i <= $#text; $i++) ・・・


784:デフォルトの名無しさん
09/01/22 17:02:14
>>781
初めに思ってたのと何か違う質問になってるな
<textarea
ああいうえお
かきくけこ
さしすせそ</textarea>
これを1行ずつ表示させたいのではなくて?

use CGI;
my $q = CGI->new;
print $q->header( -type => "text/html");
my $body = $q->param( 'body' );
$body =~ s/\x0D\x0A|\x0D|\x0A/\n/g;
my $li;
for my $word (split "\n", $body) {
  $li .= "<li>$word</li>";
}
print <<"HTML"
<form method="post" action="">
<textarea name="body">
a</textarea>
<input type="submit" />

$li</form>
HTML

785:775
09/01/22 18:05:17
>>782-783
ありがとうございます。
URL先と書いていただいた内容を参考にさせていただき、勉強致します。
>>784
ありがとうございます。
自分でも書いていて変だということに今気づきました。
簡単に纏めると、
①フォームに文章を書いてもらい、受け渡す
②それを受け取り、改行毎に一つずつ変数を持たせて並べる
みたいな感じです。
今も書いていて意味がわかりずらいです。
本当にすみませんでした。

786:775
09/01/22 23:39:14
どうしても出来ませんでした…
どうやっても500エラーから逃れられません…

>>782-783様や>>784様のを組み込もうと考えていたのですが、何か根本的に私のは間違っていたみたいです。

申し訳御座いませんが、出来れば一通りのサンプルのようなものを作成していただけないでしょうか?

仕様は何度か書かせていただきましたが、
①test.cgi(仮)にアクセスするとフォーム表示
②フォームに
[あいうえお]
[かきくけこ]
[さしすせそ]
等を複数行記入してsubmitを押す
③submitを押すと
◆1行目
あいうえお です。
◆2行目
かきくけこ です。
◆3行目
さしすせそ です。
のように表示される。

このようなのをお願いしたいのですが、やはり難しいでしょうか?

どなたか何卒宜しくお願い致します。

787:デフォルトの名無しさん
09/01/23 15:09:16
>>786
500エラーのエラー内容ください。

788:775
09/01/23 15:27:16
@textらへんでエラーが出てるようですが、
明らかに自分が書いた部分が掛かっていると思われますので、
修正というよりは1から作り直したいのですが、お手伝いしていただけますでしょうか?

789:デフォルトの名無しさん
09/01/23 15:28:54
>>788
エラーログが見れない環境?
>>784コピペするとどうなる?

790:デフォルトの名無しさん
09/01/23 15:42:16
すでに >>784 で答えが出てるじゃないか。
何が不満なのか?
スクリプトをホームページへ設置するやりかたまで
手取り足取り教えろとでも言うのか?

791:775
09/01/23 18:07:42
>>789
すみません、エラーログは見れません。
>>784をコピペして使うと500が出ます。

792:デフォルトの名無しさん
09/01/23 18:31:21
じゃ、「http 500」でググれ

793:775
09/01/23 21:07:22
フリーのPerlチェッカーでチェックしました。

Perlのエラー出力
Unrecognized character \241 at tmp.pl line 8.


ソース
0001: use CGI;
0002: my $q = CGI->new;
0003: print $q->header( -type => "text/html");
0004: my $body = $q->param( 'body' );
0005: $body =~ s/\x0D\x0A|\x0D|\x0A/\n/g;
0006: my $li;
0007: for my $word (split "\n", $body) {
0008:   $li .= "<li>$word</li>";
0009: }
0010: print <<"HTML"
0011: <form method="post" action="">
0012: <textarea name="body">
0013: a</textarea>
0014: <input type="submit" />
0015: $li</form>
0016: HTML

8行目の何が問題なのでしょうか?

794:デフォルトの名無しさん
09/01/23 22:43:07
まさか、インデント用の全角スペースをそのままコピペしてた、
というオチではないだろうな。

795:775
09/01/23 22:59:08
いえ、削除致しました。

796:775
09/01/23 23:04:46
print <<"HTML"
でエラーが出ました。

797:デフォルトの名無しさん
09/01/24 00:05:34
Unrecognized character \241 at tmp.pl line 8. って出てるじゃないか。読めないの?

798:デフォルトの名無しさん
09/01/24 00:08:32
>>796
これだろ?
Can't find string terminator "HTML" anywhere before EOF at m.pl line 10.

799:775
09/01/24 00:25:31
>>798
はいそれです。

800:デフォルトの名無しさん
09/01/24 05:21:38
最後に改行を入れてないためのエラーか。
というか、>>793は全角スペースのエラーだよね。>>794は言ってることあってたと思うんだけど会話になってないな。

801:775
09/01/24 06:00:43
>>800
確かにそうでした。
全角削除しても500出てたので勘違いしていました。すみませんでした。

最後に改行を入れた所、チェッカーでのエラーは無くなりましたが、未だにアクセスすると500になります。
何か原因などあるのでしょうか?

802:デフォルトの名無しさん
09/01/24 08:04:02
シェバング行がねーよwwwアホスwww

ここまで書かないとだめか?

803:デフォルトの名無しさん
09/01/24 08:37:46
これはひどい。

とにかく、ひどい

804:775
09/01/24 10:24:36
すみません、理解出来ませんでしたので御説明いただけると有り難いです。

805:デフォルトの名無しさん
09/01/24 11:03:48
シェルやCGIなどのインターフェイスを介してスクリプトを実行させる際に、
スクリプトの一行目に、どのプログラムで解釈させるのかを書いておく。
その行をシェバング(sharp bang/shell bang)行と呼ぶ。
その行が欠落している。

詳しくは、お使いのサーバの管理者にお尋ねください。

806:デフォルトの名無しさん
09/01/24 11:40:03
コメニケーション能力不足

807:デフォルトの名無しさん
09/01/24 11:40:40
会話のキャッチボールができていない

808:デフォルトの名無しさん
09/01/24 12:19:41
ここまでくるとスレタイ通り全部作った方がいいのかな?不毛なやりとりだからもう下のやつコピーして終了にすればいいよ
ファイル名はtext.cgi。実行権限を付ける。
=====ここからコピー=====
#!/usr/bin/perl -T

use strict;;
use warnings;

use CGI;

my $q = CGI->new;
print $q->header( -type => "text/html");
my $body = $q->param( 'body' );
$body =~ s/\x0D\x0A|\x0D|\x0A/\n/g;
my $li;
for my $word (split "\n", $body) {
$li .= "<li>$word</li>";
}
print <<"HTML"
<form method="post" action="">
<textarea name="body">
</textarea>
<input type="submit" />

$li</form>
HTML

__END__
=====ここまでコピー=====

809:デフォルトの名無しさん
09/01/24 12:26:39
>>806-807
つーか、クレクレだしな。

810:775
09/01/24 12:31:09
>>805
説明ありがとうございます。
そのような事すら知りませんでした。
勉強になります。
ありがとうございました。
>>806>>807
申し訳御座いませんでした。
リアルで話し下手なのがこのような場でも御迷惑をおかけしたことを大変恥じております。
これからはperl以前にそのような事にも気をつけたいと思います。
本当に申し訳御座いませんでした。
>>808
最後までご丁寧にありがとうございます。
コピーして使わせていただきます。
本当にありがとうございました。

このスレに来るのはこれで最後にします。
御迷惑ばかりおかけして本当に申し訳御座いませんでした。

811:デフォルトの名無しさん
09/01/24 12:46:06
結局改行の話以前のやり取りになったなw

812:デフォルトの名無しさん
09/01/25 14:23:19
バレンタインというものを人々の記憶から消し去るスクリプトを作ってください

813:デフォルトの名無しさん
09/01/25 15:34:59
>>812を葬れるスクリプトお願いします

814:デフォルトの名無しさん
09/01/25 15:56:54
>>813の呪いを消し去るスクリプトを作ってください

815:デフォルトの名無しさん
09/01/25 22:22:02
$str = "人々の記憶";
$str =~ s/バレンタインというもの//g;

816:デフォルトの名無しさん
09/01/26 02:52:28
なんというシンプルさ

817:デフォルトの名無しさん
09/01/27 14:39:23
>>813って殺人依頼じゃね?

818:デフォルトの名無しさん
09/01/30 10:24:51
アゲ

ナイ

819:デフォルトの名無しさん
09/01/30 21:01:09
>>817

うむ、だが不能犯だな。

820:デフォルトの名無しさん
09/02/01 13:37:25
無能犯


821:デフォルトの名無しさん
09/02/02 01:40:10
まあ、ギリギリアウトだな

822:デフォルトの名無しさん
09/02/04 22:36:00
・スクリプト
マイリンク
・用途
リンクスクリプトで個人個人が好きなサイトをマイリンクに登録し、登録すると登録したサイトをマイリンクで確認出来る
・仕様
①個体識別情報(携帯端末は個体識別番号、パソコンはIPアドレス)で判断し、それぞれの端末毎にマイリンクを表示させる
②マイリンクページでマイリンクしたサイトの削除が可能(個人個人で)
③追加はリンク表示の横の[追加]リンクを押すことで追加
④マイリンクページでのマイリンクの表示数は10件程度で、超えた場合は次のページに表示

こんな感じのをお願い出来ませんでしょうか?
使っているリンク集スクリプトはKENT WEBさんのコスモナビです。

どなたか宜しくお願いします。

823:デフォルトの名無しさん
09/02/04 23:31:00
既存のSBMの何が不満なんだ

824:822
09/02/07 11:32:30
>>823
自分が今サーバーに設置して使っているリンク集に、ユーザーが使えるマイリンク機能を追加したいのです。
3000サイトくらい登録しているので、利用者からマイリンク的なものを使えるようにしてくれと要望がありましたので此処にお願いに参りました。

822に追加でマイリンクページでカテゴリ分け(カテゴリ作成、編集、削除)出来たら最高です。

どなたか何卒、宜しくお願い致します。

825:デフォルトの名無しさん
09/02/08 17:38:53
お願いしますage

826:デフォルトの名無しさん
09/02/10 17:48:33
DOSのバッチをPerlに書き換えてくれたりする?

827:デフォルトの名無しさん
09/02/10 18:10:37
そんなの簡単。system 関数使えばいいじゃん。

828:デフォルトの名無しさん
09/02/13 19:51:28
1,2,3の数字を組み合わせて25桁の数字をだーーっと表示するスクリプトを何卒お願いします。

829:デフォルトの名無しさん
09/02/13 20:43:55
sub f {
my ($s, $d) = @_;
if ($d == 25) {
print $s, "\n";
}
else {
f($s.1, $d+1);
f($s.2, $d+1);
f($s.3, $d+1);
}
}

f('', 0);

830:デフォルトの名無しさん
09/02/13 23:04:58
>>829
ありがとうありがとうありがとう!

831:デフォルトの名無しさん
09/02/15 00:43:27
現在そのスクリプトにアクセスしている人数を表示出来るスクリプトお願いします。

よくある[○人オンライン中]的なやつです。
時間は60秒くらいまでをオンライン中扱いにして、携帯電話も正確にカウントされるようにお願いします!

832:デフォルトの名無しさん
09/02/15 03:51:35
#mes = "自分以外誰もアクセスしてなくて悲しい思いすることになるからやめとけ";


833:デフォルトの名無しさん
09/02/15 06:10:14
www

834:デフォルトの名無しさん
09/02/15 06:52:16
訪問者多いから書いてんだろ多分

ちなみに俺のサイトなんて月10人くるかわからない程だぜ

835:デフォルトの名無しさん
09/02/15 07:18:58
しかもそれが検索エンジンのボットだったりするんだな

836:デフォルトの名無しさん
09/02/16 18:36:46
切実に>>822をお願いします。
リンクの保存はリンクIDで行うようにしていただけると助かります。

837:デフォルトの名無しさん
09/02/17 16:46:43
〉〉⑧③⑥
この中にあると思うから好きなのを選べ
URLリンク(www.google.co.jp)

838:デフォルトの名無しさん
09/02/17 17:12:31
>>837
残念ながらありませんでした。

839:831
09/02/22 15:39:29
お願いします

840:デフォルトの名無しさん
09/02/25 23:47:12
あげ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch