Perlについての質問箱 5箱目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGPerlについての質問箱です
"There's more than one way to do it"ということで
Perlの奥深さについて皆で語り合い、追求してまいりましょう。
CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板 http://pc2.2ch.net/php/ )
CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするので
WEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
過去ログは>>2-5あたり
0002デフォルトの名無しさん
NGNGPerlについての質問箱 2箱目
http://pc3.2ch.net/tech/kako/1033/10336/1033688230.html
Perlについての質問箱 3箱目
http://pc2.2ch.net/tech/kako/1041/10412/1041205885.html
Perlについての質問箱 4箱目
http://pc2.2ch.net/test/read.cgi/tech/1048519394/l50
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG/ ,―――─―-ミ
/ // \|
| / ,(・ ) ( ・) ハァ
(6 つ | ハァ
| ∪__ |
| /__/ /
/| ∪ /\
ここはム板のほうがかっこいいと思ってる厨房・痴呆専用のスレです
WEBプログラム板perlスレ本部に逝くことを押すすめします
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNGって使えないのか?
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG全部初期化されるよ
0014デフォルトの名無しさん
NGNG寝ぼけてますた。それで初期化してほかのところでundefな変数を代入してた…
0015デフォルトの名無しさん
NGNGcsvファイルの一番上から順に1レコード読み込んで、$idと$keycodeが等しければ
それぞれ変数に代入する、という検索の部分なのですが、$idが奇数、又は偶数だ
と(csvファイルのレコード数が奇数か偶数かによる)検索失敗しまいます。
尚、$data = <IN>;の部分は、手元の本だと$data = $_;になっています。これだと
全く代入されません。
csvファイルに問題は無いと思います。お願いします。
$match = 0;
open IN,"log.csv";
while((<IN>)and($match == 0)){
$data = <IN>;
chop $data;
($keycode) = split(/\,/,$data);
if($keycode == $id){
($keycode,$flg,$mailadd,$name,$title,$comment) = split(/\,/,$data);
$match = 1;
}
}
close IN;
0016デフォルトの名無しさん
NGNG寝ぼけた香具師ばかりだな。
CGIだろ、webprog逝け。
0017デフォルトの名無しさん
NGNG#!/usr/bin/perl
use strict;
my $test = 10;
my $p = ¥$test;
&test_p(¥$p);
&test_p2(¥$test);
&test_g(*test);
$test = &test_v($test);
sub test_p {
$$p = 20;
}
sub test_p2 {
$test = 20;
}
sub test_g {
$test = 20;
}
sub test_v {
my $test = 20;
return $test;
}
より良いperl使いになろうとしたらどれを選択するべきでしょうか?
0018デフォルトの名無しさん
NGNG4番目の方法においてなぜ引数を渡しているのか分からない。
0019デフォルトの名無しさん
NGNGuse strict;
my $test = 10;
my $p = ¥$test;
&test_p(¥$p);
&test_p2(¥$test);
&test_g(*test);
$test = &test_v($test);
sub test_p {
$$p += 10;
}
sub test_p2 {
$test += 10;
}
sub test_g {
$test += 10;
}
sub test_v {
my $test = shift @_;
return $test;
}
0020デフォルトの名無しさん
NGNGmy $test = shift @_;
$test += 10;
}
だた
0021デフォルトの名無しさん
NGNG修正した4番はともかく、な。
0022デフォルトの名無しさん
NGNGmy $i = 10;
my $i_ref = \$i;
print join '/', (
plus10($i), plus10(\$i), plus10($i_ref),
plus10_g(*i), plus10_g(\$i), plus10_g($i_ref),
);
sub plus10 {
my $i_ref = ref $_[0] ? $_[0] : \$_[0];
return ${$i_ref} += 10;
}
sub plus10_g {
no strict 'vars';
local *i = ref $_[0] ? $_[0] : \$_[0];
return $i += 10;
}
0023デフォルトの名無しさん
NGNG暗号?
0024デフォルトの名無しさん
NGNG(warning: too few iterations for a reliable count)
ってエラーどういう意味でつか?
ちなみにベンチマークしてました。
0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGどこにそんなことが書いてある?
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNGIDは出ませんので、得意げに答える回答者の
不備をジサクジエーンで容赦なく追求して下さい。
0032bloom
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNGVBのように使えるdllに制限などあるのでしょうか?
0035デフォルトの名無しさん
NGNGありが�dございました。おかげさまで、結構、先まで進みました。
全然違う話なのですが、エキスプローラだとコピーが出来るんだ
けど、Perlからは扱えない長いフルパスのファイルがあって、若
干困ってます。つうか、あんな深いネストにするなよ!!
0036デフォルトの名無しさん
NGNG浦島、竜宮城に帰れ
0037デフォルトの名無しさん
NGNG使っているファイルハンドルが同じなもので
同時に2つのファイルを書き込むことが出来ません。
複数のファイルを扱える様にするにはどうしたら
良いのか教えてください、お願いします。
ちなみにIO::Fileを使ってもFHは同じなのかダメでした。
Sample.pm
package Sample;
sub new {
$class = shift; $file = shift; $self = {LIST=>[]};
bress $self,$class; open(FH,'+<'.$file);
push($self->{'LIST'},$_) while <FH>; return $self;
}
sub sample {
my $self = shift;
unshift(@{$self->{'LIST'}},pop(@{$self->{'LIST'}}));
}
sub regist {
my $self = shift; truncate(FH,0); seek(FH,0,0);
print FH $_ for @{$self->{'LIST'}}; close(FH);
}
use Sample;
$s1 = new Sample('./s1.dat'); $s2 = new Sample('./s2.dat');
$s1->sample(); $s2->sample();
$s1->regist(); $s2->regist();
0038bloom
NGNG0039デフォルトの名無しさん
NGNGuse Symbol; して gensym
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNG004240
NGNG004340
NGNG適切な回答ありがとう(・∀・)
0044デフォルトの名無しさん
NGNG004540
NGNGふぁいるてすとえんざんし?
ぐぐります。
その後で逝ってきます。
0046デフォルトの名無しさん
NGNG教えてください。
$output = "a\\b";
if( $output =~ /\\$/ )
{
$output .= "\\";
}
0047デフォルトの名無しさん
NGNG末尾に\が無かったら、末尾に\を追加。
0048デフォルトの名無しさん
NGNG正規表現
004946
NGNG助かりました。
もうひとつ聞きたいのですが、
この判定条件の$はどのような意味があるのでしょうか?
0050デフォルトの名無しさん
NGNG末尾を表す。
っていうか、ちゃんと勉強しろよ・・・
正規表現勉強してるなら、^.*$ この辺は分かって当然だろ・・・?
0052デフォルトの名無しさん
NGNGメインウィンドウを画面の中央に配置したいのですが
リファレンスを読んでもやり方がわからず。可能でしょうか?
まずはオライリーの本でも買って読んでみようかな。
0053デフォルトの名無しさん
NGNGPerlによる普通の掲示板でログの先頭行のタイトルだけを
取るにはどういう構文にすればいいんでしょうか?
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNGwebに使う2ch見たいな掲示板です。
すみません,今すれ違いだと気づきました。
お騒がせ致しました。
0056デフォルトの名無しさん
NGNGちったぁ勉強するなり調べるなりしろよ。
聞けば解決的な考えでは一歩も前に進まんぞ。
0057デフォルトの名無しさん
NGNG(.+)* ←これは何を意味してるのですか?
005852
NGNGこれでわかる?使い道は良くわからないけど。
Perl/Tk使ってる人いませんか〜?
0059デフォルトの名無しさん
NGNGPerl/Tkねぇ〜・・・。
日本語通らねーし。
GUI使うなら、それ用の言語へ移行した方がよい。
0061デフォルトの名無しさん
NGNG何も表してません。全部の文字です。
>>52
俺もTkやってみました。が、すぐやめた経験者。
なにかといらん所で互換性(?)が悪いですよ事件が多発したのでやる気なくしました。
と言う事で記述ほとんど覚えてません。
http://www.geocities.co.jp/SiliconValley-Oakland/1680/perl_tk/inde
http://b2c-1.rocketbeach.com/~bitwalk/perltk.htmlx.html
でもお気に入りには入ってた。
0062デフォルトの名無しさん
NGNGPerlで本格的にGUIが作れるのは嬉しい
ただノウハウがないせいか、希望の画面になかなかならない
いいGUIビルダが欲しい
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNGいや、お前が何か勘違いしてる。
0066棄教者 ◆egKIKYO7cg
NGNG何でもマッチする。
>>Perl/Tk
もれはガンガン使っている。
日本語が通らないのは我慢。
>>63
マウスを使ってGUI設計するのには限界がある。
0067デフォルトの名無しさん
NGNG今携帯だからURL貼れないけど
少なくともSolarisでは問題なかった
0068デフォルトの名無しさん
NGNGPerl-5.6.1の環境なんですが
PurePerlで共通鍵方式の暗号/復号ができるモジュールかソースってありませんか?
# http://www.counterpane.com/blowfish-download.html
# ここにBlowfishのCソースがあって簡単そうなんですけど、自分だと品質に自身がないので
# Perl版がないのはCrypt::Blowfishがあるからでしょうか
0069自己レス
NGNGむっちゃCPANにありました。
http://search.cpan.org/author/MATTBM/Crypt-Blowfish_PP-1.12/
最初の探し方がいけなかったみたい。
0070デフォルトの名無しさん
NGNGっていうか、使おうと思えば使える程度だけど)。
0071デフォルトの名無しさん
NGNGCPAN SEARCHで「ini」で検索するといろいろ出てきます。
定番があればそれを使いたいのですが。
Config::IniFiles -
Config::Simple
Config::Tiny
このあたりかなぁ。
ざっと見た感じIniFileがフル装備、
Simpleは他のフォーマットもサポートしてる汎用性重視、
Tinyは最低限の実装といった感じだろうか。
# 三つともインターフェイスが全く異なるというのが痛いぞ…。
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNGスクリプトのコメント部分にこういう記述がしてあるのがあります
# $Id ??? 22:22:22 Ext $
そのスクリプトのバージョンと最終更新日を意味しているのは
わかるんですが、この$Id $にはどういう意味があるのでしょうか
こういう風に書いておくとなにかと便利なことがあるのでしょうか
ググッてもヒットしなかったので質問させていただきます
それはRCSやCVSといったバージョン管理ツールにがファイルに埋め込む情報だよ。
だからPerlにとっては何ら意味を持たない。気にしなくていいよ。
0077デフォルトの名無しさん
NGNGそうですか、今のところCVSで管理するようなものは
書いてないので安心しました。
どうもありがとうございます
0078デフォルトの名無しさん
NGNG便利だから導入しなさい。
便利すぎて氏ぬ。
http://pc2.2ch.net/test/read.cgi/tech/1030563262/l50
http://pc.2ch.net/test/read.cgi/unix/1047262230/l50
http://pc.2ch.net/test/read.cgi/unix/999837578/l50
0080デフォルトの名無しさん
NGNG・・・と思ったら、今月号のハッカージャパンの
1コーナーで解説してくれてたので買いました。
0081デフォルトの名無しさん
NGNG0082ズボラー
NGNG二次元配列の要素数の取り出し方がいまいちよくわからんアフォズラ。
一次元だと
$rigid = @array;
もしくは
$rigid = $#array+1;(どっちがいいのかわからんが。。。)
で取り出せるんだが、
@array_all = (@array_one,@array_two,@array_three);
の場合で、array[0]の配列数を取り出したいとき、
@array_all[0]は$arry_one[0]が取り出されてしまうズラ。
かといって$#array_all[0]は実行エラーになるズラ。
また、一次元目の要素数を自由に取り出したいズラ。
今回の例なら
なんちゃらarray_allなんちゃら=3;としたいズラ。
どうすりゃいいズラ。ウズラ。
0083デフォルトの名無しさん
NGNG質問するなら普通の日本語使ってくれよ。
読みづらくてかなわん。
0084デフォルトの名無しさん
NGNG@array_all = (\@array_one, \@array_two, \@array_three);
$array_one_count = @{$array_all[0]};
だな。大体Perlで二次元配列なんてどこで教わったんだ?
0085ズボラー
NGNGやっぱ連想配列でやるのが普通ですかね。。。
0086デフォルトの名無しさん
NGNG0087ズボラー
NGNG配列の要素数にしても、他にも色々あるにしても
$rigid = @array;
$rigid = $#array+1;
とりあえず上記の二つがあるヅラ。
84さんが
>大体Perlで二次元配列なんてどこで教わったんだ?
といってたんで、Perlって二次元配列とか
スタンダードじゃないんだーとか思ったヅラ。
そうするとスタンダードなのは連想配列かと。。。
そう思ったヅラ。ウヅラ。
0088デフォルトの名無しさん
NGNGそれだと最後の行が
> そう思った。ウ。
となり意味不明になってしまうよ。
0090デフォルトの名無しさん
NGNGでも全体的にはヅラとった方が読みやすいから。
0091デフォルトの名無しさん
NGNG意味不明度に違いはない。
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG「要素数」が欲しいんだろ? そのものが一発で取れるのに、
何故わざわざ 1 足さなきゃいけないような値を使うんだ?
一番素直なコードを書いときゃいいんだよ。
0094デフォルトの名無しさん
NGNGaaa "bbb ccc" ddd "eee fff" ggg
という文字列があったとします
これをスペースを区切りとする単語ごとにわけるとする
ただし""で囲まれている部分は一単語としてあつかうものとする
ような場合、スマートにコーディングしようとした場合どう書けばよろしいですか。
期待している出力結果は
aaa
"bbb ccc"
ddd
"eee fff"
ggg
です
0095サンプルです
NGNGhttp://yahooo.s2.x-beat.com/linkvp/linkvp.html
0096デフォルトの名無しさん
NGNGmy $str = 'aaa "bbb ccc" ddd "eee fff" ggg';
push @str, $1 while $str =~ /([^ "]+|"[^"]*?")/g;
print join '/', @str;
0097デフォルトの名無しさん
NGNGなるほど
勉強になります。
ありがとうございました
0098デフォルトの名無しさん
NGNG遅レスだが。
win32環境ならこんな感じかな。
use Tk;
use Win32::API;
$GetSystemMetrics = new Win32::API('user32', 'GetSystemMetrics', 'N', 'N');
$cxscreen = $GetSystemMetrics->Call(0); #SM_CXSCREEN
$cyscreen = $GetSystemMetrics->Call(1); #SM_CYSCREEN
$top = MainWindow->new();
Centering(0,int($cxscreen/2),int($cyscreen/2));
$top->bind( "<Double-1>", [\&Centering,, 0, 0] );
MainLoop();
sub Centering {
my ($event, $width, $height) = @_;
$width = $top->width if !$width;
$height = $top->height if !$height;
my $x = int(($cxscreen - $width)/2);
my $y = int(($cyscreen - $height)/2);
my $geo = $width .'x'. $height .'+'. $x .'+'. $y;
$top->geometry($geo);
}
0099:
NGNG探し物はこちら
http://sagatoku.fc2web.com/
新商品・安売・キャンペーン・流行商品・ネット商品等10万点以上
ジャンル別・50音別で楽々探し物
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNGしかし彼は入団してから2年間、1軍のマウンドで1球も投げていない。 怪我は治っているが、2軍での投球も拒否。
最近では自宅での休養(サボリ)を続けているという。
ちなみにヤクルトの伊藤選手も同じような状況であるが、本人からの要望で給料の8〜9割を返還している。 一方川崎憲次郎はビタ1文も返してはいない。
もちろん税金等の問題があり、そんな単純ではないが1本10円のワクチンを10億円で買うならば1億人の人口が救えるのだ。
食料に困っている1億人の人たちにうまい棒を買ってあげられるのだ。
必死に生きて餓死していく人たちの前で川崎憲次郎は優雅な生活を楽しんでいる。
こんなことは許されない。皆もオールスターのファン投票で川崎憲次郎に投票し、出場させるのだ!!
5月23日の中間発表ではセリーグの先発2位につけている!!
投票は6月22日まで!!
https://allstar.sanyo.co.jp/vote/
中日・川崎憲次郎、依然先見えず…
http://www.zakzak.co.jp/spo/s-2003_02/s2003021502.html
0102デフォルトの名無しさん
NGNGYukiWiki2 でも使われている Algorithm::Diff (http://search.cpan.org/author/NEDKONZ/Algorithm-Diff-1.15/lib/Algorithm/Diff.pm)
などを使えばそれらしいことができるかもと思っているのですが…
0103デフォルトの名無しさん
NGNGどこかでDLするものなんですか?
0104デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNGどういう物を作りたいのかイメージが分からないけど
RCSとかCVSを利用するためのモジュールは色々あるよ
そうじゃなくて、履歴管理を自分で実装したいって事?
うぃんどうずの話は別スレの方が良いんじゃ無いかと思う今日この頃
0106デフォルトの名無しさん
NGNG何かいい方法はありませんか?
※とりあえずこんなsubroutineを代用としてみましたが。
sub deletefromarray {
my($n,@a) = @_;
my(@ra);
for(my($i)=0;@a;$i++){
$_ = shift @a;
($i == $n) && next;
push @ra, $_;
}
@ra;
}
0107デフォルトの名無しさん
NGNGopen(INOUT, "| cat |");とかやると Can't open bidirectional pipe といわれてしまいます。
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNGsplice
>>107
IPC::Open2
0110デフォルトの名無しさん
NGNGWindow&Perlでスレ立てるほど人がいるかな?
個人的にはこの話題をどんどん語ってほしいけど。
>>106
splice
>>107
わざと実装してないみたいな事がらくだ本に書いてある。
どうしても使いたいならIPC::Open2
0111デフォルトの名無しさん
NGNGこの話題ってどの話題? いや、別に煽りじゃないんだが
Win&Perlって、結局はインストールが出来ないとか、モジュールの使い方を知らない ってレベルが多いような気がする
0112デフォルトの名無しさん
NGNGWin32モジュール関係の話題とか。
0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG開発環境はWindowsXP標準のPerlです。
pop3からメールを受信して、本文を"$count","list"という名前の添付ファイルを"$count.lst"として保存するプログラムを組みたいと思っています。
ttp://www.din.or.jp/~bigstone/cgilab/guide/pop3.html
のpop3.pmを利用して作りました。
添付ファイルは、
$file = $pop3->attach(list);
で得られるファイルに保存されると言う事なので
$list=join('',"$count",'.lst');
$source = $pop3->attach(list);
rename ("$source","$list");
としましたが、ファイル名が変更されません。わかる方、解決方法教えて下さい。ソースは次レス。
※ホスト名など環境に合わせる必要があります。
0115デフォルトの名無しさん
NGNGmy($mail, $size) = $pop3->stat();
# メール取得件数
my $retr = 0;
0116デフォルトの名無しさん
NGNGhttp://bbs.1oku.com/bbs/bbs.phtml?id=yasuko
0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNGのURLのサンプルプログラム以下の部分に追加しました。
# 必要なら添付データ情報の処理を行う
%attach = $pop3->attach();
if(keys %attach > 0){
# 添付データがある場合の処理
$list=join('',"$count",'.lst');
$source = $pop3->attach(list);
rename ("$source","$list");
}
$countには数字が入ってます。
0119デフォルトの名無しさん
NGNGどうすればいいのでしょうか。
0120デフォルトの名無しさん
NGNG>perl -MCPAN -e 'shell'
でやってるけど、今のところ問題無いよ
0121102
NGNGYukiWiki の履歴機能を充実させたいなというふうに思っているのですが。
とりあえず、Algorithm::Diff を利用して `diff -n` ライクな差分の生成と patch ができるようにしてみたのですがどうでしょうか?
http://morara123.tripod.co.jp/perl/difftest.pl
http://morara123.tripod.co.jp/perl/difftest.html
0122114
NGNG自己完結しました(^^;一晩おいて、翌日考え直すと直る事って良くありますよね。
pop3.qmがロックをかけているからrename出来ないのかとかいろいろ深読みして
ましたが、単純にパスの指定がおかしかったようです。
× rename ("$source","$list");
○ rename ("$mail_dir/$source","$mail_dir/$list);
0123デフォルトの名無しさん
NGNG>>120
たしかバイナリ含むやつってなかったっけ?
そういうのは問題が起きると思う。
0124nobodyさん
NGNGppmの方が楽なんだなぁ・・・
0125デフォルトの名無しさん
NGNG10分毎に起動するプログラムを作りたいと思っています。
そこで、
while(1){
system('perl prgram.pl');
sleep 600;
}
というプログラムを組みましたが、&オプションで起動してもログアウトすると
終了されてしまいます。
何かいい方法はないでしょうか?
SunOS 5.6のサーバに置こうとしています。
0126デフォルトの名無しさん
NGNGnohupとかそういう話じゃなくて?
0127デフォルトの名無しさん
NGNG思いっきりそれで行けそうでした。
Thanks!
0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNGcron
0130デフォルトの名無しさん
NGNGCygwin 版の gcc をそのまま使うんじゃなくて、
cl とか bcc とか持ってきて cpan の設定ファイルいじればいい。
0131デフォルトの名無しさん
NGNG>>129
ほんとは、crontab設定すべきなんでしょうけどPermissionのせいかうまく
設定出来ませんでした。
自鯖じゃないから、cronは無理かも知れません・・・。
0132デフォルトの名無しさん
NGNGと表示して同じ場所に数字をどんどん減らして表示するのはどうやりますか?
数字を減らす事は出来ますが、同じ場所に表示させる方法がわかりません。
0133bloom
NGNG0134デフォルトの名無しさん
NGNGfor ($i=10;$i;--$i) {printf "%2d\b\b", $i; sleep 1}
0135132
NGNGありがとうございます。\bを使うのですね。
でも1から1000までのように桁数が増える場合はどうするのでしょう?
0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG>>134
そーゆのって、sleepできっかり1秒になるもんなの??
処理自体の時間の考慮って言うか、そうゆうのが必要だから
sleepはどうかと思ってたんだけど…。今まで。
0139デフォルトの名無しさん
NGNG表示した桁数分だけ\bで戻してスペースで消せばいい。
$|=1
$n=0
for ($i=10;print("\b \b" x $n), $i;--$i) {print $i; $n = length($i); sleep 1}
>>138
用とによるだろうなぁ。132はそんなに精度が必要とも思えなかったんで。
現時刻と最初の時刻からsleepする時間を補正すればできると思うが、
perlでgettimeofday()呼ぶのってどうすんだっけ。
# 最近はrubyに移ってしまったので、実はあんまり覚えてない。
0140132
NGNG参考になりました。ありがとうございます。
元々sleepするだけのところをsleepの残り時間がわかるようにしたかっただけで
時間の精度は特に考えてないです。
0141デフォルトの名無しさん
NGNGあれはPerl/TKで作ったヤツもコンパイルできるのか?
TKごとスタンドアローンアプリになるのか?ならないよな。
0142デフォルトの名無しさん
NGNG\r(復帰)をつかってみぃ。
0143138
NGNGああ、なるほど。
それだけの目的か。
Perl2exeは全部まとめてコンパイルされるよ。
use Tk;
これ宣言したのをコンパイルしたら実行ファイルが1.5MBになる。酷すぎる。
でも、実はperl2exeなんぞ使わなくてもperlにBと言うモジュールコンパイラがついてるらしいんだな。
使ったことないけど。
perl2exeは無料で使いつづけてます、俺。
0144デフォルトの名無しさん
NGNGC言語のエスケープ・シーケンスみたいなことがPerlでできればいいのにね。
0145デフォルトの名無しさん
NGNGをPerl4の時代(Win95)に作ったんですが、XPでひさびさに使ってみたら
ディレクトリが移動してくれません。chdirという関数を使ってるんですが
調べてみると「作業用のディレクトリ」を変更する・・・とかかれてあります。
作業用のディレクトリに移動する関数とか別に用意されたんでしょうか?
あるいは純粋にディレクトリ移動できる関数とかご存知でしたら教えていただきたいです。
0146デフォルトの名無しさん
NGNG$hoge =~ s/$array{$foo}[$bar]/$array{$foo}[$hogehoge]/
上記の方法では、うまく置換されません。
$や[が正規表現上問題があるのはわかりますが、
どこに入れればうまくいくのかわかりません。
もしご存知の方がいらっしゃったら教えてください。
0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNGその例だと問題なく置換してしまうけど?
$foo = 'foo';
$array{$foo}[$bar = 1] = 'bar';
$array{$foo}[$baz = 2] = 'baz';
($hoge = 'foobar3baz') =~ s/$array{$foo}[$bar][123]/$array{$foo}[$baz]/;
print "$hoge\n"; # bazfoobar3baz
($hoge = 'foobar3baz') =~ s/${array{$foo}[$bar]}[123]/$array{$foo}[$baz]/;
print "$hoge\n"; # foobazbaz
0149デフォルトの名無しさん
NGNGSQL を作るために、別ファイルから読み込んだ文字列を '' の中に埋め込む、
という処理をしたいのですが、-e の中なのでシングルクオートを使えません。
perl -n -e 'printf("INSERT INTO url (url) VALUES ('%s');", $_);' source.txt
何か良い方法はないでしょうか?
0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNG0152デフォルトの名無しさん
NGNGさっきVBスレでも聞いていなかったか?
仕事で使いたいならC++かJavaやりなよ。他の人のことはいい。
0153デフォルトの名無しさん
NGNG仕事で使ってるUNIX環境だと、
C++:コンパイル環境無し
Java:同じく
シェル:処理遅い
って感じでPerl使ってるんだけどさ。
まぁ、別にCでも良いんだけど。
CGIだと未だにPerlってイメージがあるからね。
スキルアップちゅうか、経験になるかな?程度で使ってるな。
まぁ、プログラムの仕様でPerl使えって言われりゃPerlを使うわけで...
0154デフォルトの名無しさん
NGNGグループ内に配布して使うのか、
社内で正式リリースするのか、
それどころかクライアントに渡すのか、
で全然変わってくる罠。
0155149
NGNGアスキーコードでシングルクオートを指定してやることで解決できました。
$ perl -n -l -e 'printf("INSERT INTO uniq_uri (uri) VALUES(\x27%s\x27);\n", $_);' source.txt
0156デフォルトの名無しさん
NGNGシェルの話なのでバックスラッシュ(\)でquoteするのが普通だけど、
$ perldoc -f q
$ perldoc perlop
という手もある。
0157デフォルトの名無しさん
NGNGPerlのエスケープ・シーケンスはCよりも多いぞ。Cには\eなんてない。
0158デフォルトの名無しさん
NGNG親プロセスのpwdを変えようとしてるんなら、単独では不可能。
ディレクトリ名を出力して親プロセスでそれを読んでcdするしかない。
0160149
NGNG確かに、q// を使っても qq// を使っても、
出力にシングルクオートが出てこないんですよね。
シェルに消されてるのでしょうか?
$ perl -n -l -e 'printf(qq/INSERT INTO uniq_uri (uri) VALUES('%s');\n/, $_);' source.txt
INSERT INTO uniq_uri (uri) VALUES(http://www.example.com);
バックスラッシュ付けると bash の文法エラーになっちゃうし。
$ perl -n -l -e 'printf(qq/INSERT INTO uniq_uri (uri) VALUES(\'%s\');\n/, $_);' source.txt
bash: syntax error near unexpected token `;'
環境は以下の通りです。
$ bash --version
GNU bash, version 2.04.0(1)-release (i386-turbo-linux-gnu)
Copyright 1999 Free Software Foundation, Inc.
$ perl --version
This is perl, version 5.005_03 built for i386-linux
(以下略)
0161>>143
NGNGしかも高いし。
0162山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNG配列の初期化 a=Array.new(100,0)
===演算子 a===[1,2,3]
のようなものはありますか?
0165デフォルトの名無しさん
NGNGRubyは知らんが
@a = (100,0);
@a = (1,2,3);
が期待しているそれかな?
0166棄教者 ◆egKIKYO7cg
NGNGArray.new( 100, 0 ) ってのは a[0] から a[99] を確保して 0 を入れておくってやつだとしたら
ない。
foreach( 0..99 ) { a[$_] = 0; }
とやるしかない。
あとそれから親切にも Ruby のサイト回って === とかいう演算子について調べたが、
Perlには残念ながら似たような機能はない。
一個一個条件文を書くしかない。
ついでにいうが switch - case
もないからこれも一つ一つ
if( ... ) {
} elsif( ... ) {
} elsif( ... ) {
} else {
}
と書くしかない。
0167棄教者 ◆egKIKYO7cg
NGNGPerl のスレッド機能が使いたいので、
Cygwin で「コンパイルして」インストールしてみたら
perl -MCPAN -e shell が使えなくなった。
正確に言えば起動はするのだが
install Bundle::CPAN ってコマンドを打ち込んだときに
CPAN: Storable loaded ok
Going to read /home/kikyosha/.cpan/sources/authors/01mailrc.txt.gz
/home/kikyosha/.cpan/sources/authors/01mailrc.txt.gz: No such file or directory
Going to read /home/kikyosha/.cpan/sources/modules/02packages.details.txt.gz
/home/kikyosha/.cpan/sources/modules/02packages.details.txt.gz: No such file or directory
というエラーが出て氏ぬ。
ところが ls で /home/kikyosha/.cpan 以下を確認するとファイルは全て存在する。
また、Sun OS にも自分でコンパイルして Perl をインスコしたが、
こちらの CPAN は正常に動作する。
チェックすべき点を教えて頂きたく候。
0168デフォルトの名無しさん
NGNGありがとうございました
0169デフォルトの名無しさん
NGNGmy @array = (0) x 100;
0170デフォルトの名無しさん
NGNG紙!!
0171nobodyさん
NGNGmodperlとかならいりそうやけど・・・
0172デフォルトの名無しさん
NGNG99.5%のPerlユーザは初期値はどうでもいいと思っているけど、
0.4%のユーザは初期値に1を、
0.1%のユーザは初期値に3.1415をキボンヌしているという統計があります。
0173デフォルトの名無しさん
NGNGテストしたら正常に動いた!
紙!
でも、俺は変数の型宣言とか初期値とかあんま好きくない。
ましてやスクリプトなのになんでそんな事を…。
て言うかperlで宣言とかしたら重くなる。いらん処理増える。
0174デフォルトの名無しさん
NGNGperlだといきなり $a[10]+=1 とかしても動くからな。
rubyはnilと0は区別するから。
0175デフォルトの名無しさん
NGNG配列を確保するだけでよいなら、
$#a = 100;
0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNGopen(FILE,">test.txt"
close(FILE);
なぜかファイルが生成されませんでした。
あれれれれ。失敗したのかな?
失敗だとしたら、目印のために強制終了させよう。
で、以下のように書く。
if(open(FILE,">test.txt")){
print FILE "あああ\n";
close(FILE);
}else{
exit;
}
プログラムは強制終了される事なく普通に進行。
でも…。ファイルが生成されてない。
あれれ。もしかして、この記述では実行ファイルと同じ場所には出来ないで、他の場所に出来るのかな?
と思い、
「スタート -> 検索 -> ファイルやフォルダ」
の技を使いC:の中を標的とし、test.txtを検索。
でも、そんなファイル存在しなかった。
なんでやねん。
このコンピュータは明らかに私を馬鹿にしています。
許せません。
…と言うか誰か馬鹿な俺に教えて下さい。
0178デフォルトの名無しさん
NGNG> あれれ。もしかして、この記述では実行ファイルと同じ場所には出来ないで、他の場所に出来るのかな?
カレントディレクトリって知ってる?
0179デフォルトの名無しさん
NGNG思いっきりファイル名を書き間違えてました。
ごめんなさい。
消滅してきます。
0180デフォルトの名無しさん
NGNGわけがあって欲しいでした。
0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNGperl2exe 6.X でコンパイルしたファイルだけが残ってるという事態で。。
6.x でコンパイルしたやつは
http://www.securityfocus.com/archive/1/312757/2003-02-20/2003-02-26/0
で復元できそうなんだけど、
コンパイルに使った perl2exe 6.x もやっぱり HDD クラッシュで消えちゃったの。
いろいろ探してるんだけど、7.00 か 5.03b しかなくてねぇ。
今年の 2/20 〜 5/5 の間に perl2exe を落とした人いたら協力お願いしました。
0183デフォルトの名無しさん
NGNGperl にもundefあるじゃないか。
上手くやってくれるけどな
0184デフォルトの名無しさん
NGNGそだな。すまそ。
0185デフォルトの名無しさん
NGNG作者にメールしてみるとか。
こうゆうことでメールするのって迷惑なのかな?
0186デフォルトの名無しさん
NGNG迷惑だ
0187デフォルトの名無しさん
NGNGGD::Graphモジュールを使用したくて
動作確認のため簡単なプログラムを走らせてみると、
Can't call method "plot" on an underfined value at ./test.pl line ***.
となってしまいます。
なにが 起きてるのか教えて下さい。 お願いします。
0188187
NGNG0189デフォルトの名無しさん
NGNG> なにが 起きてるのか教えて下さい。 お願いします。
エラー。
>>188
> あ それと対処法も・・・
デバッグ。
0190デフォルトの名無しさん
NGNG^^^^^^^^^^
undefined の間違えでは?
「./test.pl の *** 行にある未定義値では"plot"というメソッドは呼び出せない」
だから、new していないとか…
0192187
NGNG>>191
あ そういうエラーなんですね。
インストに苦労したから、GD::Graph自体がおかしいのかと思ってました。
プログラムもう一度見直してきます。
ありがとうございました。
0193デフォルトの名無しさん
NGNG$hash{1} = 50; $hash{2} = 30; $hash{3} = 20;
とあった場合に、大体 50%, 30%, 20% の確率で選ばれるように(randなので厳密にはなりませんが)
@array = ((1) x 50, (2) x 30, (3) x 20); $array[rand(@array)];
では流石に効率が悪いので
( 1000種類 × 100回 くらい なので、配列生成はちょっと...)
なにかスマートな or Perl的なやり方ないでしょうか。
0194通行人さん@無名タレント
NGNG$a = ( $a < 5 )?1:
($a < 8)?2:
3;
0195デフォルトの名無しさん
NGNG>>193は、ハッシュの要素が1000個って事じゃないかな
0196デフォルトの名無しさん
NGNGスマートでもないしあんまりperl的でもないけど。
もうちょっと考えたらperl的なの思いつきそうだけど、
今から出かけなきゃいけないのでパス。
forの所はsort使って一発でできそうな気がする。
$hash{1} = 50;
$hash{2} = 30;
$hash{3} = 20;
map {$i+=$hash{$_}} keys(%hash);
$j = int(rand($i));
for (keys(%hash)) {
if (($j -= $hash{$_}) < 0) {
$answer = $_;
last
};
}
print "$answer\n";
0197デフォルトの名無しさん
NGNG@weight = (25, 25, 150);
foreach (@weight) { $all += $_ }
until ( $weight[$key = int(rand(@weight))] > rand($all) ) {}
print $key;
0198デフォルトの名無しさん
NGNGそのやり方よりこっちの方が速いとおもわれ
$max = 0;
@weight = (25, 25, 150);
map { $max = $_ if $_ > $max } @weight;
until ( $weight[$key = int(rand(@weight))] > rand($max) ) {}
print $key;
0199197
NGNGforeach (@weight) { $max = $_ if $_ > $max };
until ( $weight[$key = int(rand(@weight))] > rand($max) ) {}
print $key;
要素の和じゃなくて、要素の最大値で十分だった。迂闊。
0200197
NGNGところで foreach と map って優劣ある?
0202202
NGNGif($3 == ($1 + $2)){
#大成功
}
__END__
2 + 0 = 2。
でした。
0203デフォルトの名無しさん
NGNGm/^(\d)(\d)(\d)$/;
$3 == $1 + $2 and die;
0204202
NGNG$ の付ける場所間違って覚えてた。
0205デフォルトの名無しさん
NGNGソフトを知っている方いましたら、教えて下さいな!
0206Tk
NGNG最近ちょっと作るものがあったのでやっているのですが、
これすごい落ちます。Cならメモリ管理関係で何かミスがあるのかと疑いますが、
Perlなので原因不明です。
もし、Tk使っている方がいましたら、よく落ちるのは普通なのか
漏れのプログラムがおかしいのか、漏れのPC(Windows)がおかしいのか助言頼みます。
落ちるタイミングは、日本語を一気に読み込んで表示する際です。
Shift_Jisなので得に問題ないと思いますが、ここで8割落ちます。
2割は落ちなくて正常に動くのでますます意味が分かりません。
WindowsXP, ActivePerl5.8.0です。
0208デフォルトの名無しさん
NGNG日本語一気に読みこんだ事ないから分からない。
出来ればその読み込む時の記述を見せてもらいたいものだ。
また、読み込む文字列とやらは常に同じ物か?
途中正規表現にかけていないか?
などなど。条件によっては落ちる。
>>205
実行中のプログラムがルーチンを認識して出力すると言う事?
テキスト状態の時のサブルーチンをエディタなどが認識できると言う事?
後者ならperlエディタってのがある。
0209デフォルトの名無しさん
NGNGエディタでツリー表示してくれる物探してるなら・・・・
PerlEdeitを・・・・と言う人が多いようだが、
JmEditの方が、まだ俺は使えると思う。
そうじゃなく、ただルーチンの一覧を出力したいなら、
Perlでも作れる。 勉強がてら作ってみるとよい。
0210デフォルトの名無しさん
NGNGだから勝手になんか書きます。
どうしても返信したい人も勝手になんか書いてください。
perlの乱数について。読みたくない人は飛ばしてください。
乱数はけっこう使う。
ゲームを作っていると、必ず乱数が必要になるし、CGIだと、ランダムにメッセージを表示することもある。
だけど、perl標準の乱数を使うと効率が悪い。一般的にプログラムから出てくる乱数は擬似乱数と呼ぶ。
だが、実際の所は乱数に擬似もクソもない。何が出てくるか「分からなければ乱数」だ。
乱数には、性能の良さもある。現実でもプログラムでも同じ。
トランプを全然シャッフルしないと、1/52で何が出てくるか分からないけど、乱数の性能は悪すぎる。
多分連続した数字が連発する。
でも、52枚全部引いた時点でちゃんとなるから「1/52%」になる。
だから「1/52%」と言ってもダメなのと良いのがある。
上記までのこれ。長かったけど、前置き。
調べた。perl/Tkをwinで動かし、乱数の出方を。効率の良い出しかたとか、統計取った。
かなり面白い結果が出てきたから書く事にする。
でも、2ちゃんねるは連続投稿してると規制がかかるから、イキナリレス出来なくなるかもしれない。
0211210
NGNGオライリーのプログラミングperlにいたっては、気に入らなければモジュールを使ってください。
と書いてある。
で、本には必ずsrand(乱数の初期化)は最初の1回きりで良いよ。
って書いてあるけど、場合によってはそれじゃ効率が悪い事が分かった。
ところで、rand関数では、絶対にやっちゃいけない事がある。これは本に書いてあったのではなくて、自分で解析した結果だ。
srand後の「1発目」の乱数を乱数だと信じて使ったらとんでもない事になる。
解析結果を書いても良いのだけど、実際動かしてみてほしい。
そのほうが面白いと思うから。
$no = 0;
while(srand($no)){
print rand(255) . "\n";
$no ++;
last if(255 < $no);
}
※↑今、普通に書いていったのでホントに動くかは分からない。
256回、初期化後「1発目の」乱数を出すはずだ。(初期値を1づつ変えながら)
あと、数字は適当に変えたりすれば結果も変わる。
0212210
NGNG動かした人はこれは乱数じゃないな、と思ったはず。
ほとんど全部同じような数字になる。で、ちょっとづつ増えていく(小数点未満で増えていく)。
だから、intで整数に直してやったら全部同じ数字になる。
「初期化のしかたが悪い」これはもっともな意見だと思うけど、あながちそうでもない。
初期化の数字が「一つずつ」ズレて行った所で、さほど問題にはならない。
一般的に初期化に「time」とか「$$」とかを使うのは、起動毎に似通った事にならないのが目的であって、
1回しか起動しないのならsrand(255);とか、明示的に書いてやっても問題ない。
で、疑問なのは「2発目」の数字はどうなるのか。
$no = 0;
while(srand($no)){
rand;
print rand(255) . "\n";
$no ++;
last if(255 < $no);
}
今度は、1発目の数字を捨てて、2発目の乱数を取得する。
0213210
NGNG「1発目」の数字が綺麗に順番に並んでいたのに対して、2発目は全く予測がつかない。
これは「3発目」の数字を取得しても「2発目と」同じ事だった。
つまり「2発目以降」から乱数と呼べそうな物が出てくるのである。
「1発目」に関しては、初期化を「srand($$ ^ time)」とかしても、
およそ乱数の範囲は限られ、そして小数点を切り捨てる(intする)とある程度数字が似かよる。
多分「1発目」は使うべきではない。
プログラム内では「rand」を使うと暗黙の内にsrandされるらしい。(←たしか5.5あたりから)
だからsrandは書かない事を勧めているような本が多い。
だが、やはり見える形(明示的)でsrandしたほうが良いに決まっているし、今回の解析で分かった通り、
sarndの直後に、
rand;
と書いて「一発目」を切り捨ててやる必要性がある。
暗黙にsrandされたのでは切捨てられない。
本当はまだたくさん面白い結果が出たのだけど、字を書くのは疲れるし、
キーボードが苦手で遅いのでまた今度。
あとでか、また明日くらいに。
0214206
NGNG同じ種で混ぜた乱数は同じタイミングで同じ値になる。
srandして次の1っ発目のrandで毎回違った値が欲しいからtime( )とプロセスIDのANDで
種を決めているんじゃない?
個人的に srand($$);で問題ないように思える。timeを入れるのは、再起動なんかして
同じプロセスID時に全く同じ数を出してしまうからいれてるんじゃないかな ?
逆に、毎回同じ乱数を発生させたいときはsrand(255)など値を指定すれば、
全く同じタイミングで同じ乱数が発生するからID生成なんかに使えると。
アア、すみません、あまり意味が分かりません。
0215210
NGNG>LinuxのPerlだと1回目でもかなりバラけた値になった。
ええと、俺の環境はActivePerlの5.8です。
俺の解析結果(の一部)を書きます。
0:0.59375
1:0.640625
2:0.703125
3:0.75
4:0.796875
5:0.84375
6:0.90625
7:0.953125
8:1
9:1.0625
10:1.109375
左側が初期値の数。
右が「1発目」で出た乱数の数。
乱数の最大値は「512」で設定(決して「2」とかじゃないです)
綺麗に順番に並びました。こりゃ乱数じゃないですね。
「2発目以降」はこのような現象は見られず、まともに出てきます。
出来れば>>206の解析結果も知りたい所です。
って言うか、perlなら必ず同じ解析結果(数字)並ぶのかと思ってたよ…。
>同じ種で混ぜた乱数は同じタイミングで同じ値になる。
あと、こりゃ当たり前っすよ。w
0216510
NGNGそれぞれの「1発目」を出してみました。
randの最大値は512です。
つまり、最大値が512の乱数を「一つづつ」初期値を変えながら「512」個出しました。
それについての解析結果はこのようになりました。
0:8
1:20
2:19
3:20
4:20
5:19
6:20
7:19
8:20
9:20
10:19
11:20
12:19
13:20
14:20
15:19
16:20
17:19
18:20
19:20
20:19
21:20
22:19
23:20
24:20
25:19
26:14
0217デフォルトの名無しさん
NGNGtime や $$ は種として推測しやすい値だから、
その種によって生成される乱数列もバレやすい。
乱数列をバレにくくする為に、
srand にバレにくい種を指定するか、
srand を呼ばないか (5.005 以降)、
モジュールを利用する。
Perl のヴァージョンによる s?rand の挙動の違いは 5.005 の
perldelta に載っている。
http://www.kt.rim.or.jp/~kbk/perl5.doc/perldelta.html
0218210
NGNG左側が、int(小数点切り捨て)した時の数字で、
右側が、その数字が出た数です。
つまり、int(rand(255))で「255回」一発目を求めた時、
26と言う数字は14回出たわけですね。
最大値が255に設定されてるにも関わらず、
0-26までの乱数しか発生しなかったのは>>215で書いたように、
1発目が「必ず順番で」出てくるからです。
0219デフォルトの名無しさん
NGNGとりあえず、man srandしろ
0220210
NGNG$no = 0;
while(srand($no)){
rand;
print rand(255) . "\n";
$no ++;
last if(255 < $no);
}
この記述はさっきも書いたけど、まだ本当の(?)乱数とは違う。
(これは2発目を取得するヤツ)
これはどんな結果が返って来るのかと言うと、
整数に直した(int)場合、0~255まで「ほぼ全て」返ってくる。
つまり、超バラけて同じ数字が返って来ない(きにくい)ってヤツだ。
トランプを一枚づつ引いて行くにに似ている。
しかも、連番では出なかった。やはり超バラけている。
これは「本当の効率のよい乱数」ではないけど、かなり使い道がある。
CGIなどでランダムメッセージなどを表示するのに超都合が良い。
次に何が出るのか分からない上に、重複がほとんどないのだ。
0221210
NGNGsrand($$ ^ time);
rand; #書籍には書いてないが1発目は捨てる。
$no = 0;
while(1){
rand;
print rand(255) . "\n";
$no ++;
last if(255 < $no);
}
などとやってしまうと、ランダムメッセージ的には重複の連続で、
しかも出てこないものはイツまで経っても出てこないというかなり効率の悪い結果になる事がわかった。
だが、統計を取ったところ、こちらのほうが自然的な乱数に近い。
0222210
NGNGなんか、これだけ書いておいてどうでも良くなってきました。
本当はもっとイロイロなパターンを出せるプログラムを作成した上で、
様々な角度から統計を取るプログラムも作りました。
と言う事でもっと多くの発見があったのだけど、やめます。
見てて面白かったとか、興味があったとか、ちょっと変わった人(?)が居たらレス下さい。
続き書きます。
Ps,解析はまだ続けています。解析プログラムもまだ作っています。
0223デフォルトの名無しさん
NGNGひでぇ結果だな…。
0224デフォルトの名無しさん
NGNG勉強になりました
サンクス!
0225デフォルトの名無しさん
NGNG0226210
NGNGちょ、ちょい。
perlの種類によってrandのアルゴリズムが違うの!?
標準関数の内部処理は全部同じだと思いこんでたよ…。
それと、出来ればそちらの環境と結果を書いてほしいな。
めんどうでしたらいいけど。
0228デフォルトの名無しさん
NGNG0229224
NGNGじゃあ、書いといておこう
動かしたスクリプト
$no = 0;
while(srand($no)){
print int(rand(255)) . "\n";
$no ++;
last if(255 < $no);
}
結果は次
0230224
NGNG二箇所で試して両方とも全く同じ結果だった。
最初の十行のみ
perl -v の結果
This is perl, v5.6.1 built for i386-linux
This is perl, v5.8.0 built for i86pc-solaris
動かした結果
43
10
232
199
166
133
100
67
34
0231224
NGNG試してみますた
最初の十行のみね
0
131
7
138
14
145
21
152
28
159
0232210
NGNGええと、どうゆうのがお好みで?
取り敢えず適当に書きます。
引数の指定なしで
rand();
とやった場合、1未満の小数点出ます。
よく本などでこれを多いに活用してるプログラムを見ますが、
俺の解析結果によるとこの小数はかなり使いにくいと出ました。
その理由っというのは、
*最後の2桁が必ず75か25になる。
*さらに一つの理由としては、桁数が安定しないのでなんか使いにくい。
*小数点未満は、いかなる方法で出しても数字がかたよりやすい(←ちょっとこれはもう1回解析入れてみます。具体的に書けるように)
これら上記の事は、最大値を100とかの整数にしても同じです。
俺は乱数は必ず大きめの数にして、intしてから使うべきだと学びました。
でも、環境によって標準関数の仕様が違うらしいって話が出てきたので、
そっちを先に調査したいと思います。
悪しからず。
0233224
NGNGすまんが、それも俺の環境ではそんな結果にならんぞ、、。
0235210
NGNGここまで仕様が違うと解析する気なくなって来た…。
解析しても意味ないじゃん。。。
あやうく「これがperlのランダムですよ」ってサイトに文章書く所だった。
危ない危ない。
そんな訳で、プログラミングperlに
Math::TrullyRandom
と言うモジュールが紹介されていたので、次解析する時はこれ使ってみようかと思います。
モジュール使えば性能良いし、多分仕様も同じになると思うから。
でも、めんどうになってきたのでしばらく解析はやめる。
そんなわけで役に立たない迷惑なレスを書き続けてしまいました。
ごめんなさい。
0236デフォルトの名無しさん
NGNGそれが perl が rand について詳しく書いてない理由。
自分の ActivePerl で以下のコードを実行すると、まあまあ再現できた。
ちなみにこういうのを線形合同法って呼ぶ。
srand($_), print rand() . "\t" . (6*$_+76+int($_ * 0.535)) / 2**16 . "\n" for (0..7);
結果:
0.00115966796875 0.00115966796875
0.001251220703125 0.001251220703125
0.001373291015625 0.0013580322265625
0.00146484375 0.0014495849609375
0.001556396484375 0.001556396484375
0.00164794921875 0.00164794921875
0.00177001953125 0.0017547607421875
0.001861572265625 0.0018463134765625
0237デフォルトの名無しさん
NGNG激しく実装依存なのだが。
無駄な努力ごくろうさん
0238デフォルトの名無しさん
NGNGあーあ、言っちゃった(w
0239デフォルトの名無しさん
NGNG線形合同法の場合、一発目は捨てるって言ってたけど二発目も捨てる必要あるよ。
一発目と二発目を捨てて、初めて線形合同法が意図する乱数が生まれる。といった覚えがある。
0240205
NGNG>209
どうもありがとうございました。
えぇ〜〜っと、言葉が足りなかったですね。
サブルーチンを呼出し順でツリー表示してくれるのを
探してたんです。
イメージとしては
+ sub1
| + sub2
+ sub3
+ sub4
みたいな?
やっぱりないのかなぁ〜。作るしかないか(×_×;)
0241210
NGNGおおお!
最初記述の意味が全く分からなかったけど、
perlが生成するrandと全く同じ処理を作ったわけですね。
(6*$_+76+int($_ * 0.535)) / 2**16
でも、なにがなんの数字だか分からなかったり。。。
この辺は自分で調べてみます。
う〜ん…。ちゃんと乱数生成のアルゴリズムを勉強してから解析。
それからここに来れば良かったカモ。
>まあまあ再現できた
出力部を見ると完璧に見えるのですが…。
>>237
あら。。ご愁傷様、俺。
>>239
そうでしたか、アルゴリズムの名前も教えてもらった事だし、検索してみます。
じゃあ、多大に失礼しました。
0242デフォルトの名無しさん
NGNG実行時にどういう順で呼び出されたか? なら、perl debuggerとかでダンプしてちょいと手を加えれば出来るけど。
呼ばれる可能性のツリーを期待してるなら俺には出来ん、スマソ
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNGまぁがんがれ
0245デフォルトの名無しさん
NGNG言っちゃダメだってば
0246デフォルトの名無しさん
NGNGオメェーの方がつまんねぇ。何様のつもりだ?(w
0247デフォルトの名無しさん
NGNGsource読む、ってことを知らないんだろ。ほっといてやれ
0248デフォルトの名無しさん
NGNGは?なにを言ってんの?
0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG:::::::::::.ゝ 実 き わ ノ::::::::::::::::::::::::::::
:::::::::::/ と。 ゃ イ:::::::::::::::::::::::::::::
\_ ,,-'
――--、..,ヽ__ _,,-''
:::::::,-‐、,‐、ヽ. )ノ ∠_::::::::
:::::_|/ 。|。ヽ|-i、 ,-、ヽ|:::::::::
/. ` ' ● ' ニ 、 |・ | |, -、::
ニ __l___ノ ゚r ー' 6 |::
/ ̄ _ | i i '-
|( ̄`' )/ / ,.. ヽ 、
`ー---―' / '(__ ) ,/ニニニ
0251デフォルトの名無しさん
NGNG登録してみたら得したよ(^^)v
★http://endou.kir.jp/betu/linkvp/linkvp.html
0252210
NGNG俺が検索不足の話してしまったせいで荒れて(?)しまって…。
話しの内容的にはperlのrandではなく線形合同法の結果になってしまったようですが。
ついでですので線形合同法、その他アルゴリズムのランダム性の特徴は、
いつか気が向いた時にでも続けて調べてみようかと思います。あ、どうでもいいですね、こんな話。
今回のコトはここに書き込んだおかげで面白いレスを複数いただく事が出来ました。
特に動作環境の依存や、アルゴリズム(線形合同法)の計算法などの報告を貰って有意義に時間を使うことが出来ました。
210から続けて大量に書き込んでしまったので目には止まるかと思いますが、
好みの内容じゃないと感じた人はスルーしてやって下さいませ。
それじゃ、今度こそ失礼しようかと思います。
0253デフォルトの名無しさん
NGNGここはお前のメモ帳ではない。市ね。
0254デフォルトの名無しさん
NGNG画像解析のために、jpg/gif/png画像を読み込んで、
ピクセルサイズや、ピクセル単位でのrgb情報の取得を行いたいのですが、
GD.pm ver2.0以上ではgifが読み込めないし、GD.pmの旧バージョンはactiveperl5.6以上で呼び出すと
落ちてしまうのですが、他にそういったことが可能なモジュール等はあるのでしょうか?
0255デフォルトの名無しさん
NGNGいい暇つぶしになったからいいや。
0256デフォルトの名無しさん
NGNGPerlを勉強中の漏れにとってはかなり面白かった。
これからも話題を提供してください。
0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNGrand について調べる以前に、
$no = 0;
while(srand($no)){
print int(rand(255)) . "\n";
$no ++;
last if(255 < $no);
}
から、例えば
for (my $no = 0; $no <= 255; $no++) {
srand $no;
print int rand 255, "\n";
}
という感じに書けるようになって欲しい。
上じゃわかりにくくてしょうがない。
foreach my $no(0 .. 255){
srand $no;
print int rand 255, "\n";
}
0261デフォルトの名無しさん
NGNGforeach my $no(0 .. 255){ ← これのコストってどんくらいなんだろね
極端な話 foreach my $no (0 .. 65535) はやりたくないよね
クリティカルな場面ならベンチでも取るが、普段はどうでもいいし、256位なら大した事も無いだろうし
感覚的に、どれくらいまでならリストでやる? > all
0262デフォルトの名無しさん
NGNGと
$n(0 .. 255)
にコストの違いってあるの?
0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNGuse Benchmark;
$N = 10000;
timethese $coount, { a => \&a, b => \&b, c => \&c, d => \&d , e => \&e };
sub a { my $i; for ($i = 0;$i < $N;++$i) {} }
sub b { my $i; 1 while (++$i < $N) }
sub c { my $i; ++$i for (1 .. $N) }
sub d { for (1 .. $N) { 1 } }
sub e { 1 for (1 .. $N) }
a: 3 wallclock secs ( 3.16 usr + 0.00 sys = 3.16 CPU) @ 173.51/s (n=549)
b: 4 wallclock secs ( 3.20 usr + 0.00 sys = 3.20 CPU) @ 212.83/s (n=680)
c: 4 wallclock secs ( 3.20 usr + 0.00 sys = 3.20 CPU) @ 209.70/s (n=670)
d: 4 wallclock secs ( 3.19 usr + 0.00 sys = 3.19 CPU) @ 306.12/s (n=975)
e: 4 wallclock secs ( 3.14 usr + 0.00 sys = 3.14 CPU) @ 267.18/s (n=840)
理由は説明しきれないので、後は任せた。
0265デフォルトの名無しさん
NGNG$subj="[回覧板 No.123]タイトル"
という文字列から、123だけを抜き取って$countに入れたいんですけどスマートな方法が思い浮かびません。
無茶するなら、
#"[回覧版 "と"No.123…"に分割
@temp=split(/\s/,$subj);
#"No.123…"を"No."と"123]…"に分割
@temp=split(/\./,@temp[1]);
#"123]…"を"123"と"]…"に分割
@temp=split(/\]/,@temp[1]);
#結果の取得
$count=@temp[0];
で出来そうですが、スマートじゃないですよね(;´Д`)
せっかくperlなんで正規表現使ってドカン!と一発で出来ないでしょうか?
0266デフォルトの名無しさん
NGNG$subj =~ /No\.(\d+)/;
$count = $1;
$subj =~ /^\[回覧板 No\.(\d+)\].*$/; の方が確実だけど
0267デフォルトの名無しさん
NGNG$subj =~ /(\d+)/;
$count = $1;
0268267
NGNG0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNGできないんだけど・・・?
$ perl -e '$subj = "abc 123 efg"; ($subj) =~ /(\d+)/g; print $subj;'
abc 123 efg
0272デフォルトの名無しさん
NGNGではなく、
print $1
$ perl -e '"abc 123 efg" =~ /(\d+)/ and print $1'
123
0273デフォルトの名無しさん
NGNGああねぼけてる。ごめん。
($count) = ($subj =~ /(\d+)/g);
0274デフォルトの名無しさん
NGNGいろいろ調べましたがどうしてもわかりません。
どなたか教えてくれませんか。
ちなみに使用OSはredhat8.0でつ。
0275265
NGNGありがとー。
0276デフォルトの名無しさん
NGNGopen(F,"text.txt");
while(<F>){
$last=$&;
}
close();
しかないですか?text.txtは行数が多いので時間がかかります。
最後の行から逆に一行ずつ読み込む関数というのはありますか?
0277デフォルトの名無しさん
NGNG0278デフォルトの名無しさん
NGNG見てないと思うが、上の方にある
$subj =~ /^\[回覧板 No\.(\d+)\].*$/;
の方がいいとおもうぞ。
($count) = ($subj =~ /(\d+)/g);
にすると、タイトルに数字が入るとそれも取得してしまうよ。
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNGtailってunixコマンドでは?
0282デフォルトの名無しさん
NGNG同意。
というか、
($count) = ($subj =~ /(\d+)/g);
これだと $count にはマッチしても 1 しか代入されないんじゃないか?
0283265
NGNG正規表現、今日手をつけたばかりなので詳しい事はわかりませんが、今回その
手法は使えないかな?
メールのサブジェクトを見て「[回覧板 No.dd]…」だったら回覧板宛のレスだと判断。
サーバーの保存された該当番号の回覧板ファイルを参照して、メール本文を追記。
もし、それ意外のタイトルだったら新規の回覧板(回覧板本文の意)として認識する
様に作っています。
よって、$subjはメールから取り出すのでそれ自体はいじれません。
$subj="[回覧板 No.30]タイトル123";
if ($subj=~/\[回覧板\sNo\.(\d+)\]/){
$subj=~/(\d+)/;
$count=$1;
print "$1\n";
}else{
#新規の場合の処理
}
としました。ちゃんと30が帰ってきましたよ(^-^)v
0284278
NGNGそれなら大丈夫かな。
$subj =~ /(\d+)/g
のように、グローバルマッチのオプションがついてると微妙ですが、、、
0285デフォルトの名無しさん
NGNG行数にもよるが
open (F, "text.txt");
@afo = <F>;
$line_num = $#afo; #これでトータルの行数-1を$line_numに代入される
print @afo[$line_num]; #多分これがファイルの最終行
最後の行から読み出す方法ってreverseを使う以外になんかあったっけ?
0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNGまだ>276の方がマシ
0288デフォルトの名無しさん
NGNG変数に代入していく、とかはダメかね。
1行の長さがある程度事前にわからないとダメだけど、
改行が見つからなかったら、今度はその2倍戻るとか。
open(FILE,"dekai.txt");
my $last;
my $offset = 1024;
TAIL: {
my $i;
seek(FILE, -$offset, 2);
until(eof) {
$i++;
$last = <FILE>;
}
if ($i == 1) { $offset *= 2; redo TAIL }
}
close(FILE);
うーん、やってみたものの、大して早くないかも知らん(−−;
まぁ276のでいいと思うのですが。ちょっと思いついたので書いてみますた。
0289デフォルトの名無しさん
NGNG0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNGユリウス日を求める式みたいなのを教えてください。
入力はシステムクロックではなく年月日時分秒の数値です。
実は既にいろいろ見つけていますが、人によって係数などが違うので
何か正しそうなやつの例を1ついただければそれでいいです。
0294デフォルトの名無しさん
NGNG実装次第だが、GNUのは>>288みたいんじゃなかったかな。
0295293
NGNG1年の最初から何日目とかいうやつじゃなくて
紀元前4713年から何日目ってやつです。
0296デフォルトの名無しさん
NGNG中身見てないけどこの辺?
ソース見ればその係数とやらは分かると思うけど
0297デフォルトの名無しさん
NGNGfseekとfgetcを組み合わせて。
効率が悪いなら最初に行数を調べるという手もある。
0299デフォルトの名無しさん
NGNG> 効率が悪いなら最初に行数を調べるという手もある。
行数を調べること自体効率悪そうだが。
0300デフォルトの名無しさん
NGNG死ぬほど遅そう。
seek ができるくらいなら mmap 使ったほうがいい。
0301デフォルトの名無しさん
NGNG標準だけでできる方法ってことで。
0302301
NGNG0303デフォルトの名無しさん
NGNGttp://www.math.keio.ac.jp/~matumoto/mt.html ってどう?
0304tail
NGNG$list=<FILE>;
close(FILE);
$i=$#list-9;
if($i<0){ $i=0; }
while($i<=$#list){
print $list[$i++];
}
0305tail
NGNG@list=<FILE>;
こうだ
0306デフォルトの名無しさん
NGNGmy $line = 1;
my @line = ();
open(F,"file");
while(<F>) {
push(@line, $_);
shift(@line) while @line > $line;
}
close(F);
# shift,unshift,push,pop はウンコな位遅い気もするが。
0307デフォルトの名無しさん
NGNGhttp://www.din.or.jp/~ohzaki/perl.htm#File_Reverse
0308デフォルトの名無しさん
NGNGhttp://search.cpan.org/author/MGRABNAR/File-Tail-0.98/Tail.pm
これ見てみると面白そうだな
つか、既に3分遅刻だ(ワラ
0309デフォルトの名無しさん
NGNGややこしいのう
0310デフォルトの名無しさん
NGNGなら、少し簡単にしたものを。元のPerlメモのよりは速い。
(自分で組んだルーチンではこれに勝てなかった。)
結局、binmodeとかseek(,,0)とかがかなり影響を与えている模様。
open(FILE, "< $file");
binmode(FILE);
$pos = (-s FILE);
while (!$last_line && $pos--) {
seek(FILE, $pos, 0);
read(FILE, $buf, 1);
$buf .= $buf_tmp;
($buf_tmp, $last_line) = $buf =~ /[^\x0D\x0A]*\x0D?\x0A?/g;
}
close(FILE);
return $last_line;
0311デフォルトの名無しさん
NGNG0312311
NGNG0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNG早いものじゃないのかあ
0315デフォルトの名無しさん
NGNGさて諸君、美しいを定義したまえ
0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNG0318デフォルトの名無しさん
NGNG0319デフォルトの名無しさん
NGNG0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNG効率悪いですか?
0323デフォルトの名無しさん
NGNGmy $res_number = shift;
print("それって普通じゃないか?$res_number\n");
}
&answer(">>322");
0324デフォルトの名無しさん
NGNG0325デフォルトの名無しさん
NGNGmyの処理は宣言無しと同じか、それより速いと思ったが。
use strict;マンセー。
0326デフォルトの名無しさん
NGNG早くなる。
変数は使われるたびに自分がドコに所属してるのか記述をさかのぼって調べるけど、
myの場合さかのぼる量が極端に少なくなる。
by.173
>>322
初めて使われる時にmyするのが普通。
宣言したあと、使われる前にリターンされたら宣言自体がいらん処理になる。
もし、リターンのあとにmyなら、そんな変数自体もともとなかった。って方向で落ちつく。
0327デフォルトの名無しさん
NGNG使ってからmyになりそうだ
0328デフォルトの名無しさん
NGNGuse strict;
0329デフォルトの名無しさん
NGNGこのコラ上手すぎ!でもワレメはまずいだろ。(*´Д`*)ハァハァ
http://plaza16.mbn.or.jp/~satchel/turuturu/
0330デフォルトの名無しさん
NGNG以下のサブルーチンの処理中、必ずdieしてしまいます。
DBへアクセスする際の書式が変な気がするのですが…よく分かりません。
sub new {
my ($pkg, $loc) = @_;
my $d = {};
tie (%{$d->{dicc}}, 'DB_File', $loc, $DB_File::O_RD, 0644, $DB_BTREE)
|| die "diccionary->new: error opening database\n";
return bless $d, $pkg;
}
Perlのバージョンは5.6.1、
DB_Fileモジュールのバージョンは1.806、
Berkeley DBのバージョンはここでは1系列です。
0331デフォルトの名無しさん
NGNG0332330
NGNG_| ̄|○dictionary
$DB_File::O_RDが怪しい。
open定数はO_RDONLY O_WRONLY O_RDWR で、これらは変数ではないので"$"をつける必要はないよ。
0334デフォルトの名無しさん
NGNG以下のコマンドと同じように、ROOT SERVER に問い合わせて、
jp ドメインの権威を持つサーバを検索したい場合には、どう
いうメソッドを使うのでしょう?
dig @a.root-servers.net -t NS -c IN jp
Net::DNS::Resolver の nameserver メソッドに a.root-servers.net
をセットしてから query してみても何も返って来ませんでした。
0335デフォルトの名無しさん
NGNGirbみたいにちょっとコマンドラインでテストするのに使いやすいのないですか?
今はperl -de使ってるんですけど
Devel::ptkdbがけっこう面白いよ。まだバグだらけだけど。
0337330
NGNGThxです。
そこを疑って自分でもO_RDONLYなどに書き換えてみたのですが、
必ずdieしてしまう挙動に変わりはありませんでした。
確かに今DB_Fileのperldoc等を見てもopen定数に"$"をつけろとかはどこにも書いてありませんが、
このスクリプトが書かれたのはPerlが5.005とかの時代らしいので
DB_Fileのopen定数の書き方も違ってきてるのかもとか思ってます。
0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNG$locが正しいファイル名で正しいパーミッションかどうかを確認する。
あと-wスイッチの元で動かしてみる。
…ああそういえば、読み込み専用では開く事は出来なかった気がするから、
O_RDWRにしてみて。
>>340
このケースでは無関係
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNGここに「どんなものであれ、そのアドレスを得ることはできない」とか
書かれてますがマジですか?
http://flex.ee.uec.ac.jp/texi/perl/perl_204.html
0344デフォルトの名無しさん
NGNG俺のソースは癖ありすぎてだめぽ。
0345デフォルトの名無しさん
NGNGそのファイルハンドルはどうやって生成したんでしょうか。
0346デフォルトの名無しさん
NGNG他言語とか言っているが実はCとそれに似せたC++、Java、C#だけのことしか言っていない罠。
実は世界が狭いのだよ。
0347デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNG適当な相対パスから生成しました。
求めたいのは絶対パスです。
0351デフォルトの名無しさん
NGNG> この日本語 perl texinfo は、基本的に perl 4.0 パッチレベル 19 のオンラインマニュアルを
> 日本語訳し、そのセクション分けに対応したノードに分割したものです。
おそらく、そのページでいうアドレスというのはCでいうところのポインターのことだと思われ。
それはさておき、「ファイルハンドルからパスを求める」というのは
open IN, '../foo/hoge.txt' or die;
したときに、IN から '../foo/hoge.txt' を求めたいということ?
ファイルハンドルはファイルとは無関係な場合があるので、パスは格納されていない。
openのときに使ったファイル名を保存しておくしかないよ。
0353デフォルトの名無しさん
NGNGopen() or die; 開け。さもなければ氏ね。
0354デフォルトの名無しさん
NGNG0355330
NGNG>>342
Thxです。
ファイル名とパーミッションも問題なく、
open定数をO_RDWRやO_CREAT|O_RDWRに書き換えても変わらず。
単独で動かすといろいろ面倒なので-wオプションは試してません。
"$DB_File::"があってもなくても同じようにdieするので、
この部分は問題でもなんでもないってことなのでしょうか。
とりあえずハッシュにデータ蓄えるだけのミニマルなスクリプトを書いて、
もし動かなかったら環境の再構築を考えてみます。
もしくは開発元に問い合わせ。
0356デフォルトの名無しさん
NGNG同じじゃないもん。
局面においては同じような挙動を示すけど、それって混乱の元じゃない?
0357354
NGNGでも、orを使うことが多いかな。
極力||は使わないようにしてる。
記述自体を文字リテラルとして扱うとき
$aaa = q|
#記述
|;
って普段書くから。
0358デフォルトの名無しさん
NGNGって使えたっけ?
0359デフォルトの名無しさん
NGNGsyntax error at -e line 1, near "or="
Execution of -e aborted due to compilation errors.
いや、99%君の書き方が悪いから上手く行かないんだと思うよ。
>単独で動かすといろいろ面倒なので-wオプションは試してません。
「試してません」って…苦労したくないなら-wオプションは使うべき。
>"$DB_File::"があってもなくても同じようにdieするので、
"$DB_File::"が何を意味するのか分かって書いてる?
多分、何かを勘違いしてるよ。
とりあえずソース見せて。
0361デフォルトの名無しさん
NGNG0362デフォルトの名無しさん
NGNG添付ファイルと本文を抜き出す処理を工作しております。
MIME::Perser を使うとできそうなんですが
この他にも何かラクチンな方法があればご助言くださいませませ。
0363マルチ
NGNG次のスクリプトを実行しても、ホスト名を得たいのですが、改行しか得られません。
これって、DNSに問い合わせができてないのでしょうか?
print scalar(gethostbyaddr(pack("C4", split /\./), 2)), "\n" while (<DATA>);
__END__
210.81.150.5
0364デフォルトの名無しさん
NGNGmunpack
0365デフォルトの名無しさん
NGNG上の方にあがっていたスレを見てわかったぞ。
use POSIX;してPOSIX::getcwd();で得られるもの(現在の作業ディレクトリ)と相対パスをくっつければいいんだ。
開いた後にchdirしていたらそれだけではうまくゆかないけど。
0366365
NGNG0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNG長さじゃねーよ馬鹿
サイズを知りたいんだよ。
0370デフォルトの名無しさん
NGNG0371デフォルトの名無しさん
NGNGw
0372デフォルトの名無しさん
NGNG上手く出来ました。ありがとう。
0373367
NGNGスカラー変数の大きさ(バイト)を知りたいです。
0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNGC言語のsizeofみたいなものか?
そんなものないよ。
0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNG0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNGプログラムの一行目に
$start=time();
最後に
$goal=time();
print $goal-$start;
とかけ。
0381367
NGNGそうです。
どうすればいいんでしょう?
0382m.m
NGNG私perlを使ってCGIで掲示板作りたいんです。まだ
初心者です。でも、最近カウンターの作り方は覚えました。
掲示板作りたいんですけど、いまいち検索かけても
掲示板の作り方とか見つけられないんです。本を買っても
いいんですけどお金かかりますし。。。。
いいサイトを知ってる方がいましたら是非是非教えてください!
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNGそれから作るのがいいと思うよ
0385名無し~3.EXE
NGNG0386デフォルトの名無しさん
NGNGないのは必要ないから。
いったいどんなことに使うんだよ。
0387デフォルトの名無しさん
NGNGバイナリでもいじるの?それなら pack,unpack 。
0388デフォルトの名無しさん
NGNGC++だとfriendとかあったと思うけど(勉強したの昔だから忘れた)
C++のfriendにあたるものなら、ない。というか、必要ないよ。
Perlでは基本的にメンバのアクセス制限は存在しないから。
0390デフォルトの名無しさん
NGNGなんかよくプロトタイプが確定する前に呼ぶなやゴルァって
Perlタンに怒られうんだが
0391デフォルトの名無しさん
NGNG#!/usr/local/bin/perl
use strict 'vars';
sub main::a($);
main::a(0);
sub main::a($){
my($c)=@_;
print "($c)\n";
(10 < $c) && return 0;
main::a($c+1);
}
0392デフォルトの名無しさん
NGNG0393デフォルトの名無しさん
NGNGmy $array = shift;
my $i;
for ($i = @$array; --$i; ) {
my $j = int rand ($i+1);
next if $i == $j;
@$array[$i, $j] = @$array[$j, $i];
}
}
fisher_yates_shufftle( \@array );
クックブックから
0394デフォルトの名無しさん
NGNGポケコンでトランプゲームとか作るの
0395デフォルトの名無しさん
NGNGuse List::Util qw/shuffle/;
my @a = (1..10);
@a = shuffle @a;
0396デフォルトの名無しさん
NGNGmap { $_->[0] }
sort { $a->[1] <=> $b->[1] }
map { [ $_, rand] }
@before;
0397デフォルトの名無しさん
NGNGforeach($aaa[int(rand(@aaa))];){
push @bbb, $_;
}
全然動作確認してないけどこれはどうだ!?
コンパクトな感じ。でもループんとこが怪しいような…。
ランダムで抜き取る時は日頃から
$bbb = $aaa[int(rand(@aaa))];
こう書いてます。
0398デフォルトの名無しさん
NGNG0399デフォルトの名無しさん
NGNG0400デフォルトの名無しさん
NGNG連想配列ってなんで hash って言うんですか?
ハッシュドビーフの hash ですよね。
切ってゴチャゴチャにするという。
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNG「ハッシュテーブル」という古典的構造を使ってるから。
0403デフォルトの名無しさん
NGNG前々スレ554氏の
「openしてからflockまでの間によそのプロセスが開けちゃわない?」
という言葉が気になって気になって眠れません。
開けても読み込みがまだなら大丈夫なのか、この隙には割り込めないようになっているのか、
1行くらいの隙間は諦めるしかないのか、どうなんでしょうか?
0404デフォルトの名無しさん
NGNG開いても書き込み(又はファイルサイズをゼロにする)がまだなら大丈夫。
0405403
NGNGしかし、openしてからflockまでの間によそのプロセスがopenできてしまうと言う事は、
そのプロセスで何かやってもよそのプロセスによってファイルへの書き込みが
上書きされてしまうような事になるように思います。
と言う事は、アクセスの集中による入力蹴られはflockでは防げないと考えて良いのでしょうか?
0406デフォルトの名無しさん
NGNG> 上書きされてしまうような事になるように思います。
上書きしなければよい。
0407デフォルトの名無しさん
NGNGその条件なしでは、タイミングも何もない。
0408403
NGNG後は自分で実験して頑張ってみます。
どうもありがとうございました。
0409デフォルトの名無しさん
NGNGなにかと世話になってるんで、無いならママーリと作ろうかと思って
0410デフォルトの名無しさん
NGNGママーリという言葉が謎だが、やるならがんがれ。
0411デフォルトの名無しさん
NGNGsub AAA {
my $a=shift;
while (($key,$val)=each %hoge) {
if ($val=~/$a/) { # $valの一部に$keyが含まれていたら
&AAA($key);
:
}
}
}
みたいな再帰関数があるのですが、反復子を共有するので再帰になりません。
でかいハッシュなので、それだけの為にコピーしたくもありませんし。
0412デフォルトの名無しさん
NGNGiモードの絵文字を使うと 〓 が出てしまいます。
ちゃんと絵文字を表示する良い方法はないでしょうか?
ちなみに、携帯からPC宛にメールを出しても 〓 が出ますよね?
これと同じで仕方ないことなのでしょうか?
0413デフォルトの名無しさん
NGNGもう >>407 で分かったのかもしれないけど、flock は open や write を
排他するのではなく、(他プロセスの) flock を排他するもの。
他人が書けなくなる(=write がエラーするとか)、ではないことに注意
0414デフォルトの名無しさん
NGNGDocomoの絵文字はDocomoでないと無理。代替画像でも用意すれば?
0415デフォルトの名無しさん
NGNGDocomoとかauとかのサイト見たら
絵文字画像があるので、その辺を参考にしながら手書きすれば?
0416デフォルトの名無しさん
NGNG.ppdがあるフォルダに移動して、
ppm install http-liteとやると
error installing package 'http-lite':could not locate a PPD file for package http-lite
↑のエラーがでます。なにが原因なのでしょうか?
0417403
NGNG一応それは分かっているつもりですた。
仮にhage.txtに「はげ」と書かれていたとして、
以下のスクリプトを2回ほぼ同時に実行した場合、
open(FILE, "+< hage.txt"); # ←A
flock(FILE, 2); # ←B
$txt = <FILE>; # ←C
$txt = $txt."ほげ";
truncate(FILE, 0);
seek(FILE, 0, 0);
print FILE $count;
close(FILE); # ←D
早い方のプロセスのAとBの間で遅い方のプロセスがhage.txtをopenしたとすると、
flockのために遅い方のプロセスがCを実行するのは1回目のプロセスがDまで行った後となるはずですが、
その時に$txtに入るのは「はげ」なのか「はげほげ」なのか?
遅い方のプロセスが終わった時にhage.txtに入っているのは「はげほげ」なのか「はげほげほげ」なのか?
>>405で言いたかったのはこのような事ですた。
0418403
NGNGだってウチのMacPerlったらflock()使えなかったんだもの(鬱氏
長文スマソ。お騒がせしますた。逝ってきます…
0419デフォルトの名無しさん
NGNGweb上からだとforbiddenになってしまうけど、
一番考えられる原因はどこよ。
0420デフォルトの名無しさん
NGNG0421デフォルトの名無しさん
NGNGすまん。書き忘れた。
パーミッションぐらいで質問しないよ。
0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNG0424
NGNG0425デフォルトの名無しさん
NGNG0426デフォルトの名無しさん
NGNGリファレンスを渡すんじゃ駄目なの?
0427デフォルトの名無しさん
NGNG403ならパーミッション
0428デフォルトの名無しさん
NGNGデーモンの設定な気がするが...
cgiファイル置いてるディレクトリにCGIの実行権限はある?
って言うかCGI関連はスレ違いじゃなかったっけ?
0430426
NGNG今見たら
sub AAA {
my $a=shift;
while (my ($key,$val)=each %hoge) {
if ($val=~/$a/) { # $valの一部に$keyが含まれていたら
&AAA($key);
:
}
}
}
のような気もせんではないけど・・・・
0432ぬるぽ
NGNG"abcde"という文字列があるとき、
それぞれの文字の前にある決まった文字列を入れる場合はどうするの?
例えば"AHO"を付加したい場合
"AHOaAHObAHOcAHOdAHOe"になって欲しいのーーん。ノンノン!
0433デフォルトの名無しさん
NGNGhttp://www3.kcn.ne.jp/~barozza/
とっても ageなサイトかもぉ
0434デフォルトの名無しさん
NGNGmy @splited_chars = split('', "abcde");
my $result;
map { $result .= "AHO$_"; } @splited_chars;
print "$result\n";
0435デフォルトの名無しさん
NGNGs/(.)/AHO$1/g
0436434
NGNGせいきひょうげんをしらなかったわけじゃないぞ。
フォルゴレはつよいんだ。みてろよー。
0437デフォルトの名無しさん
NGNGそれ以前にアスキーコードでしかつかえんね・・・コレ(w
0439デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>438
0440デフォルトの名無しさん
NGNGはmapの使い方として推奨されてない気が。
434だったら、
join "" => map { "AHO", $_ } split('', "abcde");
な感じでFA。
0441デフォルトの名無しさん
NGNGperlはunicodeもサポートしてますが(w
0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNGそのためのEncodeモジュールじゃないの?
といってもEncode::JPは変換がおかしいけど。
0444デフォルトの名無しさん
NGNGjoin "AHO", split( //, "abcdef")
って感じ。もうひとつ、行頭に "AHO"がいるが。
0445デフォルトの名無しさん
NGNG複数の検索エンジンにワードを投げて、その結果をまとめてから出力する、
というcgiを書いています。
$URL{$key[$num]}に検索エンジンのアドレスとと検索ワードを付け加えたURLを格納して、
`wget $URL{$key[$num]}`や
$html = `w3m -dump_source $URL{$key[$num]}`
などのようにして、検索エンジンにワードを投げた後に出力するhtmlを取得しようと思ったのですが
どうしても上手くいきません。
どなたか、解決方法をご教授してください…(;´д`)
0446デフォルトの名無しさん
NGNG0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNG○ 宇宙 HAS-A 地球
045211
NGNG以下のアルファベットのAからZまでの中から「BCD」を開始位置、「TUV」を終了位置とし、
その間の文字列の抜き出しと、その文字数を調べる問題なのですが、どうもうまくいきません。
まだ勉強したてなので、どなたか教えてください。
$str="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$x=index($str,BCD);
$y=index($str,TUV);
print 'BCD開始位置=',"$x";
print 'TUV終了位置=',"$y";
@data=split(//,$str);
$result=scalar(@data);
print "$result";
exit;
0453デフォルトの名無しさん
NGNG宿題は自分でやれ。
0454デフォルトの名無しさん
NGNGsplice
045511
NGNG宿題ではないですが、これを解きたいんです。
>454
ありがとうございます。
splitではなく、spliceという意味でしょうか?
0456デフォルトの名無しさん
NGNG文字列の抜き出し=substr
文字数を調べる=$y-$x
自分で考えなきゃ問題解いた事にはならないだろ。
045711
NGNG頂いたヒントを元にやってみました。
時間はかかりましたが、なんとか出来上がりました。
ありがとうございました。
str="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$x=index($str,BCD);
$y=index($str,TUV);
print 'BCD開始位置:',"$x\n";
print 'TUV開始位置:',"$y\n";
$len=length($str);
$kouho= substr($str,$x,$y+1);
print '結果=',"$kouho";
exit;
0458デフォルトの名無しさん
NGNG$str =~ s/(\w|\W)+(BCD)(\w+|\W+)(TUV)(\w|\W)+/$2$3$4/;
$len=length($str);
print "str:$str\n";
print "length:$len\n";
exit;
0459デフォルトの名無しさん
NGNG0460デフォルトの名無しさん
NGNG-1
となるから算術シフト?
0461デフォルトの名無しさん
NGNGActivePerlのFTPとかにおちてないかなぁ
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGここらへんは、perlにしては珍しく変数の型がそのまま使われる。
と言う事で、一応perlでもなんの変数なのか認識しとく必要がある。
余談だけど、型はしっかり意識して使っといたほうが良いヨ。
数字に対して「文字列比較演算」とかしたら、
内部で文字型に変換されて、比較して、その後また数字型に直す。
なんて言うようなクソ作業が始まるから。
0464デフォルトの名無しさん
NGNGwhile の部分を eval {} で囲んだ方が効率が良いらしいのですが、
本当でしょうか?
また、本当なら何故効率が良くなるのか教えていただけないでしょうか?
内部実装を意識した方がいいというのは同意だけど、意識しすぎるのは無意味だと思うな。
型を意識する必要がないのはPerlの利点の一つだし、
単に比較演算程度なら、一旦数値が文字列化されれば
あとは数値として使おうが、文字列として使おうが、値を変更しない限り変換が行われる事はないからね。
>>464
そんなこと、聞いた事ないな。
それとも正規表現のコンパイルに時間がかかる、ってことかなぁ…。
# こういうケース
my $pattern = "foo";
while(<>){
if(/$pattern/){
# ...
}
}
eval() すると早いってのはこのこと。
パターンが何種類もある場合は、確かに考慮に値するほど変わることもある。
$pattern = "foo";
eval <<'CODE';
while(<>){
if(/$pattern/o){ # o - コンパイルを一度しかしない
# ...
}
}
CODE
パターンに定数を使える(oオプション使用を含む)のなら、わざわざeval()する意味はないけどね。
0466デフォルトの名無しさん
NGNGないでしょうか?
最初の要素を保持してループを回し、異なる要素が出てきたら
同一でないと判断するのはPerlっぽくない(他に手段がある)気がするので。
0467デフォルトの名無しさん
NGNG単に同一かどうかだけでいいのなら、
"@array1" eq "@array2"を評価しては?
0468466
NGNGすみません、ちょっと書き方がまずかったようです。
二つの配列をマッチングさせるのではなく、一つの配列の中にある
全ての要素が同一かどうかを見たいのです。
また、配列の中身が何なのかはとりあえず考えません。
(タブ区切りの文字列をループ内で分割しながら処理するので)
grepを使えば・・・というのは良いヒントになりましたが、場合によっては
メモリを喰いそうですね。
自分でももうちょっと考えてみます。ありがとうございました。
0469デフォルトの名無しさん
NGNGの122
0470デフォルトの名無しさん
NGNG作りたいと思っています。例えば、背景色を選びロボットの頭、胴体、手、足の
各パーツ画像を選んで「画像作成」ボタンを押すことで、選んだすべてのパーツが
合体して表示される、といったものです。
perlよりほかの言語のほうが適しているのかもしれませんが、いろいろ調べても
よく分からなかったので、多少は分かるperlスレで質問しました。
スレ違いであれば別スレに誘導していただけると助かります。
よろしくお願いします。
0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNGこういうプログラムはperlで作成することが可能かどうかをお聞きしたいです。
もしできるなら、その作成例などがあるサイトを紹介していただければありがたいです。
0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNGアクセスカウンターとかの画像を合成しているのを参考にするのが良いのかな
Web 系みたいだから、WebProg 板のスレの方がいいと思う
http://pc2.2ch.net/test/read.cgi/php/1054992610/
0475デフォルトの名無しさん
NGNGまず、プログラムの実行環境から整理して書け。
めっちゃ意味分からん。
0476470,472
NGNGありがとうございました。行ってみます。
0477デフォルトの名無しさん
NGNGmy @array1 = (123, 456, 789);
my @array2 = ("123 456", 789);
(つД`)
0478デフォルトの名無しさん
NGNG@array1 == @array2;
"@array1" eq "@array2";
じゃあこう。
2つとも通過でOK。
って質問主の要望に沿ってないし。
0479509
NGNG横に連結した1つの jpeg 画像ファイルを出力するプログラムを書け。
また、指定した位置に連結できるようにもせよ。
どなたか作っていただけませんか?
0480デフォルトの名無しさん
NGNG偉そうにマルチポストか。死ね。
0481デフォルトの名無しさん
NGNGうわぁ、最悪
0482デフォルトの名無しさん
NGNGマジレスしてもいいの?
じゃ、PerlMagic使えば〜
0483デフォルトの名無しさん
NGNGやめろ。続きが想像できる。
「PerlMagicって何ですか?必死で調べましたが分かりませんでした。教えてください」
「インストールってどうすればいいんですか?」
「インストールでなんかエラーが出たんですが、どうすればいいんですか?」
以下略
0484464
NGNG答えていただきありがとうございます。
自分もそんなことしているのは cgi-lib.pl でしか見たことないです。
でも、 cgi-lib.pl は eval の始まりの辺りにコメントで
# for efficiency, compile multipart code only if needed
と書いてあるんですよね。
それから検索したらオライリーの目次みたいなのがヒットして
5.5 evalによる実行効率の向上 という内容があるわけですが
http://www.oreilly.co.jp/BOOK/adperl/contents.htm
この本は持ってないし、効率のために eval を使っているものをあまり見つけられないので
実際のところはどうなのかなと思ったわけです。
で、効率にかかわるのは正規表現が関係する時ですか?
よくわからないのでとりあえずヒットした本をどこかで探して読んでみます。
どうもありがとうございました。
なるほど、やはり正規表現関連の事だと思うよ。
でもeval()は使い方を誤ると劇的に遅くなる事があるので、注意したほうがいい。
0486誘導屋さん
NGNG#!/usr/local/bin/perl
use GD;
$file1 = "test2.jpeg";
$file2 = "test1.jpeg";
open (IMG,$file1);
$image1 = newFromJpeg GD::Image(IMG);
close(IMG);
open (IMG,$file2);
$image2 = newFromJpeg GD::Image(IMG);
close(IMG);
($w1, $h1) = $image1->getBounds();
($w2, $h2) = $image2->getBounds();
$width = $w1 + $w2;
$height = ($h1>$h2)?$h1:$h2;
my $target = new GD::Image($width, $height);
$target->copy($image1, 0, 0, 0, 0, $w1, $h1);
$target->copy($image2, $w1, 0, 0, 0, $w2, $h2);
print "content-type:image/jpeg\n\n";
print $target->jpeg;
0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNG0489デフォルトの名無しさん
NGNG適当な記憶で書くけど、ループは繰り返されるたびに再コンパイルされていて、
ループ自体をevalから実行させると1回しかコンパイルされないので良い。
ってオライリーに書いてあった気がする。
俺はループの中でやむなくeval連発するプログラム作った事あるけどね…。
0490デフォルトの名無しさん
NGNG処理自体には関係ないよね。
0491デフォルトの名無しさん
NGNG訳も悪いが誤植もひどい・・・
と思ったら、本家本も誤植が多いのね。
0492デフォルトの名無しさん
NGNGスレ違い
0493デフォルトの名無しさん
NGNGどうせしょうもない話しかしてないじゃん
0494デフォルトの名無しさん
NGNG>465の最後のケースならevalのたびにパーズから必要。
0495デフォルトの名無しさん
NGNG洩れはPerlネットワークプログラミング読んでるんだけど、
これも誤植ひどいよ。
ピアソンエデュケーションって。。。
0496デフォルトの名無しさん
NGNG「情報交換」とでもしないかい?
本一冊読んでりゃしないような質問と回答ばかりじゃつまらない。
0497デフォルトの名無しさん
NGNG質問箱のスレも立ててくれ。
つまりトータルで見ると、情報交換のスレをお前が別に立てれ。
0498デフォルトの名無しさん
NGNG間違いなくCGIの話題が溢れ返る。
0499デフォルトの名無しさん
NGNGわかったよ。もうこのスレの質問には答えない。
0500デフォルトの名無しさん
NGNG適当に新陳代謝していってくれ
コテハンとか名乗らなくていいから
0501デフォルトの名無しさん
NGNG自意識過剰なんだよ、役立たずのくせにw
0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNG2ちゃんでPerlの質問に答えられる天才は>>499様しかいないんですからー。
( ´,_ゝ`)プッ
0504デフォルトの名無しさん
NGNGさらにもましてスレが下らない方向に進んでるぞー。
Q&Aのはまだましだぞー。
0505デフォルトの名無しさん
NGNG$a=1;
$b=2;
print "$a+$b=",$a+$b;
を
print "$a+$b=($a+$b)";
のような書き方で同じ出力を出したいのです。
0506デフォルトの名無しさん
NGNG$a=1;
$b=2;
$c=$a+$b;
print "$a+$b=$c";
0507デフォルトの名無しさん
NGNGそれをしたくないから質問してるのに。
0508デフォルトの名無しさん
NGNGなら代わりに答えてください。
0509貧乏脱出!これであなたはお金持ち
NGNG本当にお金持ちになるにはやはり「副収入」が必要!
一日30分 おうちでコピペ、コピペ!
嘘だと思うんならランキング見てみてくださいよ↓↓
(直リン不可)
http://www.adultshoping.com/addclickport.cgi?pid=1053353765(直リン不可)
..............
0510デフォルトの名無しさん
NGNGmy $a = 1;
my $b = 2;
print "$a+$b=@{[$a+$b]}";
こんな感じ?
0511棄教者 ◆egKIKYO7cg
NGNGPerlクックブックの第一章に同じようなネタがあったけど、
会社に置いてあるので、自宅から2CHに繋げている今は答えられない。
誰かPerlクックブック手元にある香具師いたら見て、変わりに答えておくれ。
0512505
NGNGありがとうございます。
小数も平気みたいですね。
自分には原理がまだ良くわかってないんですが。
0513デフォルトの名無しさん
NGNGprint "$_=@{[eval($_)]}";
こんなんも出来るんか。
0514デフォルトの名無しさん
NGNGまぁ@の方が拡張性あるとは思うケドね。
0515デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNG0521デフォルトの名無しさん
NGNG${} の中身を(スカラー)リファレンスにするため。
0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNG$a=1;$b=2;
printf ("\$a + \$b = %d",$a+$b);
0524デフォルトの名無しさん
NGNGというのを式でやりたいだけなのでは
0525デフォルトの名無しさん
NGNGそれをしたくないから質問してるのに。
・・・一番アホなのは>>505だが。
0526デフォルトの名無しさん
NGNGというのが質問からさっぱり読み取れない
0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNGみんなで質問者の知的好奇心を満たしてあげようじゃないの。
0529デフォルトの名無しさん
NGNG最初から決まってるなら、それを文字列の中に入れる
メリットは無い、というかフィロソフィーがおかしい
0530デフォルトの名無しさん
NGNGもしそうなら隔離板のWebProg板で聞いてほしいな。
0531デフォルトの名無しさん
NGNGどっちが早いのですか?
0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNG真の正解は
print "1+2=3";
だと言いたいのだね。
0534デフォルトの名無しさん
NGNGその本は丸っきりの初心者向けでは無いようなので質問します。
Perlをまったく知らない状況から勉強しようとして本を買うなら、
最初歩としてはどの本が良いのですか?
なるべく分かりやすく、飽きにくいものをお願いします。
0536デフォルトの名無しさん
NGNGrubyではできるからperlではどうなのかと思ったとか
a=1
b=2
print "a+b=#{a+b}"
0537デフォルトの名無しさん
NGNGそれが不十分である為にprintfに切り替えたり、
予め別変数に書き出しておいたり、という作業が入るのは
言語としてちっとも完備していない
でもそれがperl
0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNGmy $a = 1;
my $b = 2;
print "$a+$b=${\($a+$b)}\n";
こっちのほうが>>536に近いかな。
0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNG0543デフォルトの名無しさん
NGNG取り敢えず . は改行にはマッチしない。
なお、「.*」の場合、最長マッチなので ^ と $ は全然いらない。
そもそも、この記述を使いたい意味が全く分からない。
> ^ と $ を同時に指定できない理由はあるのでしょうか?
同時に指定できる。
取り敢えず、正規表現の動作を理解してから出直して。
0544543
NGNGああ、書き忘れたけど、
m/^.*$/
これは
!(m/\n/)
これとほぼ同義。
0545デフォルトの名無しさん
NGNGダウソ。DOS改行の場合とか・・・。mいらんよ。
0546デフォルトの名無しさん
NGNGデミリタの定義を目視出来るからね。
perlの改行(\n)は、システムにおいて意味合いが変わってくるのでDOSだからどーこーなる事はありません。
0547デフォルトの名無しさん
NGNG$cmd = FileHandle->new( "|command" );
print( $cmd "hogehogehoge" );
...
でコマンドにパイプでデータを流し込んでコマンドの実行結果を得るには
どうしたらいいですか?
0548デフォルトの名無しさん
NGNGCSVファイルの中身がそのスクリプトを動かしているシステムに合った改行コードとは限らない。
今回の場合は決めてあるのかもしらんけど。
IPC::Open2/IPC::Open3を使う。
ただしいとも簡単にデッドロックしてしまうため、素人にはお勧めできない、
というようなことがドキュメントに書いてあるので注意されたし。
0551デフォルトの名無しさん
NGNGa=12.34567
0552デフォルトの名無しさん
NGNG0553デフォルトの名無しさん
NGNGint(($a/100)+0.05)*100で出るかな? 適当だけど。
0554デフォルトの名無しさん
NGNG誤爆。四捨五入じゃないのか。'sprintf'を使えば?
0556デフォルトの名無しさん
NGNG0557デフォルトの名無しさん
NGNGActivePerl5.8
ですが
setsockopt(SOCKET,SOL_SOCKET,SO_RCVTIMEO,30)が成功しません
0558デフォルトの名無しさん
NGNGあーそうですか。
報告ありがとうございます。
0559デフォルトの名無しさん
NGNG乙〜
0560デフォルトの名無しさん
NGNG一般的な方法ってありますかね?
ユーザーが意図してポーリングの開始、終了を制御できるようにしたいんですが。。。
サービスとして実行させようにもアプリケーションじゃないとだめそうだし。。。
どなたかいい方法知ってる方いらっしゃいませんか??
0561デフォルトの名無しさん
NGNG0562デフォルトの名無しさん
NGNG0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNG0565デフォルトの名無しさん
NGNG0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNG0568デフォルトの名無しさん
NGNGPerl コーディング初心者質問コーナー Part25
http://pc2.2ch.net/test/read.cgi/php/1056730690/
0569デフォルトの名無しさん
NGNG0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNGなんとなくネタスレになっただけ。
0572デフォルトの名無しさん
NGNGそのときの地域選択のときに候補が上がってこないんだけど、どうしたらいいの??
数字を入れても起こられるからまぢわからんです。
0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNGご教授いただけるとありがたいです。
トップページがCGI(top.cgi)でそこにアクセスするとURLを変えないまま
実際はA.shtmlを表示させています。
そのA.shtmlにはSSI式カウンタが設置してあります。
普通にA.shtmlを表示させればカウンタは表示できるんですが
top.cgiからアクセスしてもカウンタが表示されないで困ってます。
○A.shtml→SSIカウンタ=見える
×top.cgi(A.shtml)→SSIカウンタ=見えない
そのSSI式カウンタの設定では相対パス絶対パスも全て試しましたが
表示されません。なにか表示できる方法はありますでしょうか?
そこから先に進めず困っています。よろしくお願いします。
0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNGすいません・・このような質問はWEB制作板とかのほうがいいんでしょうか
0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNG例えばHTMLのエレメントの構造の様なものを記憶しておきたいんですが。
(HTMLを読みたいというわけではない)
・・・ぶっちゃけた話、LISPのS式(そのものじゃなくても良い)を
perlでも扱えないかと。
0580デフォルトの名無しさん
NGNGアルゴリズムの問題じゃない。
lispでできてPerlにできないことなんてないでしょ。
この場合は、フラグ処理が適切と思われ。
開始タグと終了タグの個数を差し引きして、階層を作る。
0581デフォルトの名無しさん
NGNG単にこういう話ではなく?
http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlref.html
http://perldoc.jp/docs/modules/MLDBM-2.01/MLDBM.pod
0582デフォルトの名無しさん
NGNGActivePerl5.8.0を使用しています。
-Vオプションで設定を見ると
「usethreads=undef」となっているのですが、
これを有効にする方法はありますでしょうか?
0583デフォルトの名無しさん
NGNGPerl のソース拾ってきてコンパイルし直し。
0584デフォルトの名無しさん
NGNG[$a,[$b,[$c,[$d,]]]]ってのはどう?
scalar( %hoge )の返り値は何?
0585579
NGNGperlref の仕組みで大丈夫っぽいです。
厳密にリスト構造を似せる必要はないので。
0586579
NGNGありがとうございました。
0588デフォルトの名無しさん
NGNGLISPしっかり使ったこと無いので何ともいえないけど・・・
[
    &{sub {
        my ($data,$data2);
        my $func;
        $func=sub{
        };
        return $func;
    }},undef
    ]
];
クロジャー組み合わせたりもできるし・・・
どんな使い方できるかは分からないけど面白いことできるかも。
useithreads
0590デフォルトの名無しさん
NGNG  じゃなくて が正式な(後ろにセミコロン)。
Janeだと正式な書き方しないとそのまま表示されてしまうので
0591デフォルトの名無しさん
NGNGとってきた画像ファイルの上にヘッダ情報がテキストで入ってしますのです。
こいつを取り除く手っ取り早い方法おしえて下さいお願いします。
#!/usr/bin/perl
use LWP::UserAgent;
$url = "http://aaa/aaa.jpg";
$id = "namae";
$passwd = "password";
$ua = LWP::UserAgent->new;
$req = HTTP::Request->new(GET => "$url");
$req->authorization_basic("$id", "$passwd");
print $ua->request($req)->as_string;
0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNGかたじけない!
0594デフォルトの名無しさん
NGNGcygwinの使うのとwin用の使うのの利点、欠点教えて
0595デフォルトの名無しさん
NGNGppmでモジュール管理が楽。
0596デフォルトの名無しさん
NGNGcmd.exeとか使いにくいから、cygwinの方がイイ!
ま、簡単なことやるなら、copalなんか使う手もあるが。
0597デフォルトの名無しさん
NGNG「ppmモジュールねぇよ」
って怒られること多くない?
どうせ perl -MCPAN すりゃ同じだし
system()とか`` 考えるなら、断然cygwinだな
0598デフォルトの名無しさん
NGNG0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNG偉い人じゃないから、system()自体の違いは知らんけど
Windowsだったら system('echo hoge'); とか @list=`ls`; とかできないじゃん
0601デフォルトの名無しさん
NGNGbash上でActivePerl使うのが楽
どっちかでしかコンパイルできないmoduleもあるし
0602デフォルトの名無しさん
NGNG分かってるならいいんだけどね
0603デフォルトの名無しさん
NGNGオレッチはCygwin入れるときPerlは入れないでActivePerl入れてる。
0604デフォルトの名無しさん
NGNGwinからperlを便利に使いたいだけならActivePerl
0605デフォルトの名無しさん
NGNG0606デフォルトの名無しさん
NGNGUNIXコマンドを使うようならcygwin...ってかUNIXいれろ、と。
0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNG椰子は香具師
椰子は香具師
椰子は香具師
椰子は香具師
0609デフォルトの名無しさん
NGNG> 椰子は香具師
0610デフォルトの名無しさん
NGNG0612デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNG0614デフォルトの名無しさん
NGNG0615デフォルトの名無しさん
NGNG俺の予想: 彼は「香具師」をいわゆる「厨房」の意味と思っており、
「ヤツ」の変化の歴史を知らなかった。
ありえない: 実はネタである。
0616デフォルトの名無しさん
NGNGことだと思っちゃったんだろうなあ
0617デフォルトの名無しさん
NGNG0618デフォルトの名無しさん
NGNG後、ダウソする時のメアド記入欄ってちゃんとしたメール記入した方がいいのですか?
なんか怖い
0619_
NGNG0620デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/php/
http://pc2.2ch.net/php/
http://pc2.2ch.net/php/
http://pc2.2ch.net/php/
http://pc2.2ch.net/php/
http://pc2.2ch.net/php/
ここは痴呆専用のスレで
次からCGI・ぺrlは↑の板で聞け
ActivePerlはフリー
メアドは適当でいい
英語嫁ないならどうせそのうち挫折するだろ
0621デフォルトの名無しさん
NGNG英語がわからない人がプログラミングをするとこは法律で禁じられています。
0622デフォルトの名無しさん
NGNGPerlを使う環境がPerlそのものと並んで重要なことくらい
分からない>>607は・・・
0623デフォルトの名無しさん
NGNG0624デフォルトの名無しさん
NGNG0625デフォルトの名無しさん
NGNG>>623、話の発端は、ActivePerlとcygwinPerlのどっち
入れたほうがいいでつか、っていう質問だっただろ。
そもそもPerlの比較じゃなかったんよ。漏れ、粘着?
0626デフォルトの名無しさん
NGNGエラーメッセージをコピペして
「どういう意味なんでしょうか……」
0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNGエラーメッセージコピペするのは質問者として非常に正しい。
ダメな質問者は 「何かエラーが出て動かない」 としか言わない。
0630デフォルトの名無しさん
NGNGそのまえにエラーメッセージでググッてみるとなお良い。
0631デフォルトの名無しさん
NGNG0632デフォルトの名無しさん
NGNGttp://search.cpan.org/author/UMEMOTO/Socket6-0.11/
0634デフォルトの名無しさん
NGNGWin2000
ActivePerl 5.8.0
これでマルチスレッドを組むことは可能ですか??
0635デフォルトの名無しさん
NGNG「\」が長すぎる行をコンソール上で見やすくするために、行の末尾に、次の行に
続くの意味で使われいます。
例)
aaa = bbb , \
zzz = ddd
→
aaa = bbb , zzz = ddd
と同じ意味。
これをうまく処理するためには、どんな感じにするのがよいでしょうか。
0636635
NGNGlocal $/ = undef;
$text = <STDIN> ;
}
$text =~ s/\\\n//gd ;
私はこんなのとか、$/ = " \n" ; とかしか思いつかないのですが、
もうちょっと軽い感じにできないかと。
0637デフォルトの名無しさん
NGNGそれをどう処理したいの?
0638デフォルトの名無しさん
NGNG意味がわからん。出直せ。
0639デフォルトの名無しさん
NGNG日本語意味分かんないから放置するけどな
0641デフォルトの名無しさん
NGNG"Why is this site Orange?" ってアンカーがあって
http://search.cpan.org/orange.html
に理由が書いてあるじゃん。
俺的抄訳:
OSCON2003でPerl Foundationの募金活動としてオークションをやった。
その一環として cpan.org の色を1年間指定の色にさせる権利をセリに出した。
http://london.pm.org/ が、自分たちのオフィシャルカラーであるオレンジ色に入札して、
結局競り落としはしなかったのだが、
London.pmはイイ香具師だったので1ヶ月間だけオレンジ色にすることにした。
あれま。見落としてた。
色の権利か〜。面白い事考えるなぁ(笑
0643デフォルトの名無しさん
NGNGfor(@array) {
/deleted/ && 配列からその要素を取り除く
}
という処理をしたいのですが、
splice で配列のoffsetを指定する必要があるので
※code-B
for(my($i=0);$i<scalar(@array);$i++) {
$array[$i] =~ /deleted/ && splice(@array, $i--, 1);
}}
こういうながったらしい書き方になってしまいます。
cod-he-A のような書き方でやれないでしょうか?
0644643
NGNGcode-B で閉じ括弧二重タイプしてしまいました。
0645デフォルトの名無しさん
NGNG/deleted/ && push(@new, $_)
}
ちょっとせこいケド。
0646645
NGNG0647645
NGNG何度もすいませんw
0648デフォルトの名無しさん
NGNG}
@array = grep{!/deleted/} @array;
はダメ?
0649648
NGNG0650デフォルトの名無しさん
NGNG(⌒⌒)
ヽ (
(_)
O000o
(⌒⌒)
) /
(_/
0651デフォルトの名無しさん
NGNG並列処理(Thread)を使いたいのですが、どなたか使われた方いらっしゃいませんか?
簡単なサンプルソースを見せていただきたいのですが。。。
初期化すらままならない状態でして。。。
0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNGuse threads;
use threads::shared;
use Win32;
my $global : shared =0;
sub Func
{
my ($tmp)=@_;
my $tmp2="0".$tmp;
$tmp2=~s/(..)/$1/;
$tmp*=100;
foreach(0..10)
{
{
lock($global);
$global.=$tmp2.'::'.($tmp*$_)."\n";
}
Win32::Sleep($tmp);
}
}
@t=();
foreach(0..10){
$t[$_]=threads->new(\&Func,$_);
}
foreach(0..10){
$t[$_]->join;
}
#print "exit $global\n";
print $global;
0655654
NGNGmy $name : sheard;
でスレッド間で共有する変数は作る。
制限としてリファレンスとかが使えなかった気がする。
これ以上知りたかったら自分で調べるか実験するかしてくれい。
まあほかに試した人いたら聞きたいけど。
0656デフォルトの名無しさん
NGNG0657山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0659デフォルトの名無しさん
NGNGそれとも専用のエディッタが必要ですか?
0660デフォルトの名無しさん
NGNGメモ帳でもイイ!
専用のエディタがあればもっとイイ鴨
とどのつまりは自分自身が使いやすいほうを選ば吉
0661デフォルトの名無しさん
NGNGありがとうございます!
とりあえず、ワードパットでやってみます。
無理っぽかったらフリーソフト・・・。
限界が来たら専用エディッタ買ってみます
0662デフォルトの名無しさん
NGNG使いやすいエディタって何よ?
http://pc2.2ch.net/test/read.cgi/php/991372719/l50
0663デフォルトの名無しさん
NGNGUnix->vi,emcas
0664デフォルトの名無しさん
NGNGワードパッドはどうかと思うがな……。
フリーソフトの開発環境なら「Perlを始めよう!」とか「Copal」があるな。
まぁ最終的にはテキストエディタに落ち着くわけだが、
これから始めるんであれば試しに使ってもいいと思う。
0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNG0667デフォルトの名無しさん
NGNG秀丸はシェアウェアだから、『とりあえず』で選べるものではない。
...とか言ってみるtest。
0668デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/php/991372719/l50
0670デフォルトの名無しさん
NGNGと言ってみるテスト。
0671デフォルトの名無しさん
NGNG0672デフォルトの名無しさん
NGNG0673デフォルトの名無しさん
NGNG要登録
Perl用強調表示などもあるので選択肢の一つとしてはアリだと思うが…
そんなことよりエディタを制御するスクリプトがPerl風のエディタない?
0674デフォルトの名無しさん
NGNG全てのWin32APIが使えるんですか??
0675デフォルトの名無しさん
NGNGというよりは、DLL内の関数を呼び出すモノ。
0676デフォルトの名無しさん
NGNGそこらへんの解説をしてる所って殆ど無いね・・・
0677デフォルトの名無しさん
NGNGうまくすると多分perlから使えるんだけど、
どうやればいいのか判らない
0678デフォルトの名無しさん
NGNGこの¥ってなんですか?
0679_
NGNG0680デフォルトの名無しさん
NGNGリファレンスを求める演算子
$ref=\'c';
print "$$ref\n";
0681デフォルトの名無しさん
NGNGWin32:;APIの使い方
ActivePerlでLHA
川合氏(河馬屋二千年堂さん)
http://member.nifty.ne.jp/hippo2000/perltips/perllha.htm
0682デフォルトの名無しさん
NGNG0683_
NGNG0684デフォルトの名無しさん
NGNG0685デフォルトの名無しさん
NGNGPPM> set repository ACTIVESTATE http://www.activestate.com/PPMpackages/5.6plus/
PPM> install HTTP-Lite
と入力したら
Error installing package 'HTTP-Lite': Read of http://www.activestate.com/PPMpackages/5.6plus/ failed
と出てうまくいきません。
どなたか対処法をお願いしますm(_ _)m
0686デフォルトの名無しさん
NGNGPerlのコーディングと関係ないよ。
正規表現スレで聞いてみたら?
0687デフォルトの名無しさん
NGNGWin32APIの仕様ならMSDN見るしかあるまい。Perlの範疇を超えている。
>>677
Iriaは忘れたがIrvineは doc\api.txt というファイルに仕様が書いてあるな。
まぁ、ActiveXなんだが。
0688_
NGNG0689デフォルトの名無しさん
NGNG正規表現スレってドコ?
0690デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/php/1038146241/l50
0691_
NGNG0692デフォルトの名無しさん
NGNGやり方が分かりません
どなたか解説お願いします
0693デフォルトの名無しさん
NGNGもう次刷れたてんなよ>>1
0694デフォルトの名無しさん
NGNGまぁAPIに限れば、スレ違いかも知らんケド。
さて、APIリファならASCIIの『Win32API オフィシャルリファレンス』がオススメでつ。
0695デフォルトの名無しさん
NGNGまだいたのか。しっしっ。
0696デフォルトの名無しさん
NGNG自分の3Dソフトのオブジェクトをパイソンスクリプトでなく
Perlで一括操作したいと考えています.
3Dに限らずソフトSDKを使って,Perlを実装する話などの
書籍・HP等ございましたら,ご紹介願えないませんでしょうか.
よろしくお願い致します.
0697デフォルトの名無しさん
NGNGman perlxs perlxstut
0698696
NGNG該当3DソフトようのPerlインタフェースPlug-inモジュールを
作るってことでしょうか?
0699696
NGNGデータ型を正しい受け渡しと3Dソフト側のオブジェクトの
生成・廃棄を自分でやっているだけですよね...多分
0700デフォルトの名無しさん
NGNGhttp://yahooo.s2.x-beat.com/linkvp/linkvp.html
0701696
NGNGなんかそれっぽいのが見つかりました.
http://www.kt.rim.or.jp/~kbk/perl5.005/perlxstut.html
ありがとうございましたm(_ _)m
0702デフォルトの名無しさん
NGNG大人のスクリプト講座で詳しく説明してたな。
俺はそれだけの理由で買った。
0703デフォルトの名無しさん
NGNG面白そうだな
0704デフォルトの名無しさん
NGNGなんか面白い使い方載ってた?
0705デフォルトの名無しさん
NGNGって、先月号かよ_| ̄|○
先月までは何やら色々やってたみたいね。
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNG諦めずにGO
で、どんな内容?
0708デフォルトの名無しさん
NGNGperlcc使ってみたら
Note(probably hermless)No library found for 'kernel32.lib'
とかいうのが10行くらい出て さらに
'cl'ゆーコマンドはありまへん とMS-DOSが抜かすわけだが。。
D以下にインスコしたのがいけなかったのか??
0709デフォルトの名無しさん
NGNG「Susieのプラグインを使った、画像をBMPに変換するコンバーター」
の作り方とかが載ってます。
0710デフォルトの名無しさん
NGNGインターネットは義務教育が終わってから、とか規制してくれないかなー…
0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNG(突っ込みたいけどやめておくよ)
0713デフォルトの名無しさん
NGNGperl filenameとしてくださいね^^;
0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNG0716デフォルトの名無しさん
NGNGほほー、なかなか面白そうだな。
そのうちバックナンバー探してみるか。
0717デフォルトの名無しさん
NGNG$sys=system('ls');
print $sys;
$back=`ls`;
pritnt $back;
やってみそ。
0718デフォルトの名無しさん
NGNGC言語でもやったら?
0719デフォルトの名無しさん
NGNG操作可能なプログラムまたはバッチ ファイルとして認識されていません。
0720デフォルトの名無しさん
NGNGどこでうごかしてんだよ
0721デフォルトの名無しさん
NGNG$sys=system(ls);
な
0722デフォルトの名無しさん
NGNG適正なサイズにリサイズして格納したいと思っています。
これは不要に大きなファイルを送られてサーバが圧迫されるのを
防ぎたいのですが、調べたら利用中のサーバにGDがインストールされて
いましたので、これでできるのかも、と自前のテストサーバにも、
GD1.19をインストールしました。(サーバはGD1.18です)
そもそもGDでこんな事は可能なんでしょうか。
またそんなGDの使い方があるサイトとかありませんか?
0723デフォルトの名無しさん
NGNG0725_
NGNG0726デフォルトの名無しさん
NGNGCGIって何?
>>1の存在は無視?
お前の存在も無視していい?
0727デフォルトの名無しさん
NGNG行の折り返しに挑戦しています。
format や Text::Wrap を使ってみましたが
文字化けして上手くいきません。
解決方法がありましたら教えて下さい。
参考になるサイトがありましたらよろしくお願いします。
0728デフォルトの名無しさん
NGNGhttp://www.din.or.jp/~ohzaki/perl.htm#JP_Fold
0729722
NGNGCGIはCGIだよ。gdはライブラリ。
GDはGD.pmって言ってperのモジュール。
でperlで書いたCGIスクリプトでGD.pm経由であんな事がしたい、
って事ですが、ここはもっと話題が限定的なんですね。
了解しました。
0730デフォルトの名無しさん
NGNGこの場合、「CGIについての質問」ではないと思うのだが?
背景として説明してるだけでしょ。
0731デフォルトの名無しさん
NGNGここではCGIという単語は一切出さない方が良い。
>>722の質問でもCGIに言及せずに書ける。
722がスレ違いじゃなくても、それに釣られてスレ違いの質問が増えてくるだろ。
0732デフォルトの名無しさん
NGNGもういいよ、そっとしといてやるから気にすんなよ。
0733デフォルトの名無しさん
NGNG解析しようと思って、bmpファイルに変換したいけど、
bmpのデータ構造が少し厄介なので、
そのへんを面倒見てくれるモジュールはありますか?
0734デフォルトの名無しさん
NGNG「夏」ということで、過剰反応する香具師がどんどん増えるので、、
0735デフォルトの名無しさん
NGNG全角文字・半角文字の文字数をカウントする関数を作ったんですが
local($s) = @_;
local($l) = length($s);
$s =~ s/[\x81-\x9f\xe0-\xfc].//g;
local($zl) = ($l-length($s))/2;
($l-$zl*2,$zl);
↑こんなやつ
引数の文字列のなかに半角文字が入ってないにも関わらず
半角文字が検出されるようなパターンが発生するかどうか知りたいです。
アフォっぽい質問ですがよろしくおねがいします。
0737デフォルトの名無しさん
NGNGchompを使ってテキストの改行を取るコードを書いて、
以前はきちんと動いていたのですが、
別サーバーでやったら、改行が取れなくなりました。
もとのテキストは、自分で編集したテキストファイルです。
perlは5です。
理由がわかる方はいらっしゃるでしょうか?
もし、ここではしていけない質問だったらすいません…。
0738デフォルトの名無しさん
NGNG必死になってる>>726みたいな香具師はお前が出てけよ。な?
0739デフォルトの名無しさん
NGNGs/\x0D\x0A|\x0D|\x0A//g;
もしくは
chompを二回やるとか。
0740デフォルトの名無しさん
NGNG739さん、ありがとうございます!
できました。
以前はきちんと動いていたので、理由がわからず困っていました。
とても助かりました。
「chompを二回」も試してみたのですが、こちらはダメでした。
ともあれ、ありがとうございました。
0741デフォルトの名無しさん
NGNGそのParrotを作るのに手間取ってなかなかPerl6開発が進まないんだよね?
わざわざ新しいVM作らないでJavaのVMで動くようにすればいいのに。
そうすれば携帯とかもっと色々なプラットフォームでPerlが動くと
思うんだけどどうよ?
0742デフォルトの名無しさん
NGNG確かに便利だな
しかし、そうするとPerlじゃなくてJavaを使う罠
0743デフォルトの名無しさん
NGNG既存のPerlリソースがJavaVM上で動いたり、Perlソースから
Javaオブジェクトが使えたりするのは、有意義かもな。
Apache-BSF
http://jakarta.apache.org/bsf/
スクリプト言語とJavaBeansのインターフェイスを簡単に作れる
基盤は、IBMがApacheに寄贈してくれている。誰か作ってみそ。
0744デフォルトの名無しさん
NGNGJythonつかえヴぉケ
てめーが考えるようなことはすでにPerl6以前にやってんの
JPLっていうのんで結局開発はとまった
PerlはCISCにのっとったOP命令が多い言語
JavaはRISCにのっとったOPが少ない言語
このふたつをまぜこむのは大変なの
てかparrot<−>JVMはある
ぐぐれや夏厨が
あげんな
責任もって
このスレ削除してこい
0745デフォルトの名無しさん
NGNG0746デフォルトの名無しさん
NGNG自分でもどなってみたくなったんだろ
0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNG0749デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNGこれで鳴る
0751747
NGNGどうやったらいいのでしょうか?
0752デフォルトの名無しさん
NGNG>>748
0753デフォルトの名無しさん
NGNG終了してくれるwindowsアプリを紹介して下さい
0754デフォルトの名無しさん
NGNG板違い過ぎ
0755デフォルトの名無しさん
NGNG普通にアラーム鳴らす時に自分が使ってる奴
0756747
NGNGwavファイルでも大丈夫でしょうか?
0757デフォルトの名無しさん
NGNGこんなのがあった
なに、サウンドボードが無い?
それはもう諦めるしか
っていうか、最初からハードウェア板の管轄だな
0758デフォルトの名無しさん
NGNG,! ヽ ,:' ゙;.
! ゙, | }.
゙; i_i ,/ ,.、 .,r.、
,r' `ヽ、 ,! ヽ,:' ゙;.
,i" _, ._ ゙; ! ゙;; }
!. ・ ・ ,!. ゙; ii ,/
ゝ_ x ,::'' ,r' `ヽ、
(^ン''`'''''''''''''' 0∞o。 i" _, _ ゙;
`"! ( ::) ∧ !. ・ ・ ,! ←>>747
゙'ンーr-‐-'") / < >ゝ_= x _::'
(__ノ (_,ノ ∨ /`''''''''(⌒';’∵∴;;゙
(⌒ヾ;;, `ソ :‘
゙゙`ヽ、、、__,,ノ゙
0759747
NGNG0760デフォルトの名無しさん
NGNG鳴ってる以上、普通にドライバがあってどっかに
指令出してるんだろうけど。
0761デフォルトの名無しさん
NGNGDos上で動くんだからそれは無理。
0762デフォルトの名無しさん
NGNGopen("A:\\GIKOGIKO") while(1);
0763デフォルトの名無しさん
NGNG……って、Windows限定でいいんだっけ?
0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNGhttp://www.muconsulting.com/playwav/index.html
playwav.exe
0766デフォルトの名無しさん
NGNG開始とか終了とかできちゃう?無理?
0767デフォルトの名無しさん
NGNG> WIndowsとはそんなに関係ないですが、CGIでよく使われるらしい
> スクリプト、CGI.pmにクロスサイトスクリプティング脆弱性があるようです。
> CGI 職人、あるいはCGI使われている方々は最新のバージョンに
> アップデートすることを推奨します。
>
> http://archives.neohapsis.com/archives/bugtraq/2003-07/0267.html
0768デフォルトの名無しさん
NGNGexeなんかをサービスとして動かす方法があったような気がした。
win系の板で聞いた方がよさげ。
0769デフォルトの名無しさん
NGNGperl2exe?
perl/tk?
0770デフォルトの名無しさん
NGNGこれでいいんですか?
$file_open_flg = open(IN,"<datafile.csv");
@lines = <IN>;
close(IN);
if($file_open_flg==undefine){
print "ファイルをオープンできません";
}
0771デフォルトの名無しさん
NGNGhttp://endou.kir.jp/yuminet/link.html
http://endou.kir.jp/marimo/link.html
0772デフォルトの名無しさん
NGNG無条件に読み込んでいるようですが、なんのために戻り値を受けているんですか?
0773デフォルトの名無しさん
NGNGエラー処理はopen時にやっとけ。
0774デフォルトの名無しさん
NGNG#TYPE1
if(!open(FILE,"file0.txt")){
print "NO\n";
#exit
}else{
print "OK\n";}
#TYPE2
open(FILE,"file0.txt") || die print "NO\n";
あいかわらずレヴェルの低いスレだ
泣きそうだ>>1を10000回惨殺したい
ていのうどもはphp板に引っ込んでろ
0775デフォルトの名無しさん
NGNG考える労力を使わないのがperl風
0776デフォルトの名無しさん
NGNG>あいかわらずレヴェルの低いスレだ。泣きそうだ
ワロタ。
でも、まぁ、良いんじゃない。
良くわかってなくても取り合えず動いちゃうのがPerlで、
そこが魅力でもあるんだから。
770もガンガレな。
0777デフォルトの名無しさん
NGNGopen(FILE,"file0.txt") or die $!;
0778デフォルトの名無しさん
NGNG{
open(FILE,"datafile.csv") || die($!);
@lines=<FILE>;
close(FILE);
};
if($@)
{
die($@);
}
0779デフォルトの名無しさん
NGNGどっちが楽か考えてみるべ。という話になりました。
何でもいいんですが、半径入れたら面積でるとか、全部半角にするとか
いや、ちょっとこれはいくら何でも簡単すぎるか、、。
どんなプログラム書くことにしましょう。
もちろんPerlに有利な(汗)
0780デフォルトの名無しさん
NGNGLispとかまで行くと違ってくるけど
perlはCから面倒な部分を極力取り払った感じ
0781デフォルトの名無しさん
NGNGこういうのを作らせるのが一番Perlらしさが出るんじゃないかな。
perl -ne '/(if|while|for|switch|case)\b/ && print' hoge.cpp
正規表現の部分は色々変えて。
0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNG/⌒ヽ
/ ´_ゝ`)時間的に、ここ通らないと行けないので、通りますよ・・・
| /
| /| |
// | |
U .U
0784デフォルトの名無しさん
NGNG0785デフォルトの名無しさん
NGNGこれって何をやろうとしてるの?
0786デフォルトの名無しさん
NGNG0787デフォルトの名無しさん
NGNG現在OSはWIndows98SEで、AcrivePerl5.8 をインストールして
Perlが正常に動作いたしました。
ところがopen関数で外部ファイルを読み込もうとすると失敗してしまいます。
具体的な例だと、
$pepfile = 'proteinseq.log';
open(PROTEINFILE,$pepfile);
$protein = <PROTEINFILE>;
print "$protein\n";
をMS-DOSで実行すると
readline() on closed filehandle PROTEINFILE at script/4-5.pl line 11.
となってしまいます。
ファイル名は間違っていません。
なぜ開けないのでしょうか?
ちなみに、これにHTMLのヘッダーをつけてCGIとしてブラウザで実行すると
proteinseq.logをちゃんと読み込んでくれました。
0788ぼるじょあ ◆yEbBEcuFOU
NGNGとりあえずopenの戻り値は必ずチェックしろ
0789デフォルトの名無しさん
NGNGline 11とは$protein = <PROTEINFILE>;の部分にあたります
0790787
NGNGごめんなさい。初心者でして、戻り値のチェックとはどういうことですか?
0791ぼるじょあ ◆yEbBEcuFOU
NGNGうーん・・・
open(PROTEINFILE,$pepfile);
print $!;
とやってみな。多分それで原因が分かる。
0793787
NGNGprint "ファイル $pepfile は開けませんでした。";
exit;
}
としてチェックを入れるとやはり
ファイル $pepfile は開けませんでした。
が実行されてしまいます。
ファイル名は絶対に間違っていません。
このファイルとスクリプトは同じディレクトリにあるのですが、
ディレクトリの指定の仕方がまちがっているのでしょうか?
0794787
NGNG#!/usr/bin/perl -w
$pepfile = '/proteinseq';
open(PROTEINFILE,$pepfile);
print $!;
$protein = <PROTEINFILE>;
print "$protein\n";
exit;
を実行したら
readline() on closed filehandle PROTEINFILE at script/4-5.pl line 8.
Use of uninitialized value in concatenation (.) or string at script/4-5.pl line
9.
No such file or directory
となりました。やはりディレクトリの指定法が間違ってるような気がするのですが
0795ぼるじょあ ◆yEbBEcuFOU
NGNG今度はなんでルートディレクトリからの絶対パスになっているんだ?
0796787
NGNGごめんなさい。間違えました。
でも/つけてもつけなくても同じようです。
0797ぼるじょあ ◆yEbBEcuFOU
NGNGファイル名も変わっているんだけど・・・・
0798デフォルトの名無しさん
NGNG0799787
NGNG絶対パスで指定したらできました!
やはりパスの指定がおかしかったのですね。
でも相対パスではどうやるのでしょうかね・・・?
いろいろご迷惑おかけしました。
ありがとうございました。 >>ぼるじょあさん
0800デフォルトの名無しさん
NGNGそんざいしてないファイルを読み込もうとしても、、、
あと
なんで
$pepfile = "proteinseq.log";
じゃないんだ?
0801787
NGNGproteinseqとproteinse.logを用意していたのです。
説明不足申し訳ありませんでした。
0802デフォルトの名無しさん
NGNG0803787
NGNGそのようですね。perl.exeが置いてある位置からの相対パスだったようです・・・
違うフォルダにスクリプトファイルも読み込みファイルも置いてあったので
0804_
NGNG0805デフォルトの名無しさん
NGNG>>803
use Cwd;
print cwd(),"\n";
これで表示されるものがスクリプトのある場所とは異なる?
0806805
NGNG0807805
NGNG0808787
NGNGperl.exeとは別のフォルダにスクリプトと読み込みファイルが置いてあるという意味です。
両ファイルは同じフォルダです。
perl.exeがある場所が C:\Perl\bin
両ファイルは C:\Perl\bin\script
に置いてました。
0809デフォルトの名無しさん
NGNG実行するときに
C:\> perl C:\Perl\bin\script\protein.pl
とかやったんでしょ?
スクリプトのある場所に移動してからやらないとね。
0810デフォルトの名無しさん
NGNGPerlの奥深さについて皆で語り合い、追求してまいりましょう。
ヽ(・ω・)/ ズコー
\(.\ ノ
0811デフォルトの名無しさん
NGNG絶対パスで指定するのが結局楽だな
0812デフォルトの名無しさん
NGNGやるもんじゃないのか?
0813デフォルトの名無しさん
NGNGun
0815_
NGNG0816_
NGNG0817_
NGNG0818デフォルトの名無しさん
NGNG/ ´_ゝ`)時間的に、ここ通らないと行けないので、通りますよ・・・
| /
| /| |
// | |
U .U
0819デフォルトの名無しさん
NGNG復号化しようと読み込むと途中までしか読めないのは何が悪いんでしょうか?
ちなみにどこまで読めてるのかなーとprintしてみるとピーとかビープ音が出ます。
0820デフォルトの名無しさん
NGNGコード晒せ
何のモジュールつかってるのか書けよ
2度使いまわすファイルなどは
書き込み用にopenしたファイルは必ずcloseしたあと
もういっかい読み込みようにopenするんだよ
てかopenしたらcloseすること
0821819
NGNGuse DES::TripleDES;
open ( FILE_IN ,"< $file_in" ) ;
open ( FILE_OUT ,"> $file_out" ) ;
my $des = new TripleDES;
while ( $line= <FILE_IN> ){
print $line;
$content = $content.$line;
}
close ( FILE_IN );
#Encode
if ( $transaction == 1 ){
print FILE_OUT $des->encrypt3 ( $content, $pass );
}
#Decode
elsif( $transaction == 2 ){
print FILE_OUT $des->decrypt3 ( $content, $pass );
}
close ( FILE_OUT );
DESはCPANから拾ってきたやつです。
http://search.cpan.org/author/JLISHEV/WebTools-1.27/lib/modules/additionals/TripleDES.pm
0822デフォルトの名無しさん
NGNGそんなプログラム書いてると、FBIにマークされるぞ
0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNG#!C:/perl58/bin/perl5.8.0.exe
#use DES::TripleDES;#(UNIXの場合)
use Crypt::TripleDES;#(ActivePerl/ppmの場合)
open(FILE,$ARGV[0]);
read(FILE,$plaintext,-s $ARGV[0]);
$passphrase="enigma";
my $des = new Crypt::TripleDES;
my $cyphertext = $des->encrypt3 ( $plaintext, $passphrase );
my $plaintext = $des->decrypt3 ( $cyphertext, $passphrase );
print $plaintext
0825デフォルトの名無しさん
NGNGread(FILE,$plaintext,-s $ARGV[0]);
#-s でファイルのサイズの取得、$plaintextにバッファを詰める
>>ピーとかビープ音
うーんこれはもっとプログラムの勉強しようC言語とかアスキーコードとか
0826819
NGNGえ?輸出制限はもうなくなったのでは?
>>824
それなら出来るんですけど一回ファイルに書き出して
それを読み込むと途中までしか読めないんです^^;
普通のファイルだと読めているので暗号化した文字列の問題なんでしょうか?
>>825
readで読んでも同じところで切れてしまいます。
C言語とかアスキーコードとかの勉強をするとビープ音が分かるようになるんですか?
0827デフォルトの名無しさん
NGNG0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNG$| = 1;
これはどういう意味でしょう?
print (pack 'H*', $1);
これも意味が分かりません。
H*は16進数文字列 (上位ビットが先)、だと思うのですが、$1は1文字???
Pascalでのプログラミングは慣れているのですが、Perlは初めてなので
どなたか教えてください。
0831デフォルトの名無しさん
NGNG$| = 1;
現在selectされている(初めはSTDOUT)をバッファリング無しに設定する。
$|=1;
$i=10;
while($i--){print '>'; sleep(1);}
これを$|の値が0の時と比べてみると違いが分かるかも。
0832デフォルトの名無しさん
NGNG○されている出力チャネル
0833デフォルトの名無しさん
NGNG$| : http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlfaq5.html
pack: http://homepage2.nifty.com/Catra/memo/perl_pack.html
$1: http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlre.html
0834デフォルトの名無しさん
NGNGThanks!
0835デフォルトの名無しさん
NGNGmy $data_format = 'Lff';
my $data_length = 20;
syswrite FILE, $data, $data_length;
この$data_formatの形式を教えてください。
解説しているサイトへのリンクだけでも結構です。
0836デフォルトの名無しさん
NGNG0837デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?num=100&q=format+Lff
http://www.hyuki.com/writing/techask.html
0838デフォルトの名無しさん
NGNGman perlfunc で pack TEMPLATE のところ見れ。
つーかそれ以前にperlのマニュアルひととおり読め。
0839デフォルトの名無しさん
NGNG思いっきりお馬鹿な質問の書き方してスマソ。
引用をとちってました。使っているのは
my $data = (pack $data_format, $time, $a, $b);
です。
>>837
だよな。本来だったら回線切って逝ってこなきゃいけないよな。
これだけ聞いたらもうご迷惑は書けないのでスマソ。
ぐぐってもローパスフィルターしか出て来ないんですよ。
>>838
ゴメン。今「はじめてのperl」の到着待ちっす。
0840839
NGNG符号無しLongと単精度浮動小数点のことだったみたい。
回線切って逝ってくる。
0841デフォルトの名無しさん
NGNG0842デフォルトの名無しさん
NGNG0843山崎 渉
NGNG0844デフォルトの名無しさん
NGNG(具体的には携帯電話のメモリ読み書きなど)
どうやればいいんでしょうか?
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNGselect AUX;
print "ATD110\n";
0847844
NGNGドライバというのはシリアルケーブルのドライバのことでしょうか?
モジュールとはPerlモジュールですか?
>>847
AUXというのはシリアルケーブルにつながれた携帯電話を示すのでしょうか?
0849デフォルトの名無しさん
NGNG読み出した後のデータフォーマットの扱いは
既にperlの話ではないし
0850デフォルトの名無しさん
NGNGまずググったのか?CPANでモジュールの検索をしたのか?と小一時間.........(ry
0851デフォルトの名無しさん
NGNGいろいろ調べてみたら、
http://www.e-founder.net/serial.php
こうゆうのが出てきたんですけど、
open_prtの引数には何を入れれば入れればいいかが分かりません。
(そもそもWinでも使えるのか?)
他にはDevice::serialportとかありましたけど、
これもいまいち使い方がわかりません。
↓こことか見ると
http://www.att.or.jp/perl/faq/perlwin32faq/perlwin32faq8j.html#How_do_I_read_from_and_write_to_
普通に
open( PORT, "+>COM1" )
とかでいいみたいに書いてありますが。
0852デフォルトの名無しさん
NGNGCPANにWin32-SerialPortというモジュールがある。
それをインストールして試せ。 インストールの仕方を聞くなんて野暮はすんなよ。
そのドキュメント読んで使い方を理解しろ。 英語は苦手なんて泣き言はいうなよ。
成功を祈る。
0853デフォルトの名無しさん
NGNG0854デフォルトの名無しさん
NGNG>Perl以前の問題だな。
ホー、コンピュータ全般に通じてらっしゃる方は言うことが違う
0855デフォルトの名無しさん
NGNG○仰ること
はい、もう一度
0856デフォルトの名無しさん
NGNG「でばいすふぁいる」ってしってまちゅか?
0857デフォルトの名無しさん
NGNGご指摘感謝、謝々。 では、改めて
ホェー、コンピュータ全般に通じてらっしゃる方はホザクことが違う
0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNG何言ってんだ?通信路さえ確保できればあとは言語に関係ないだろう。
逆切れすると誰も答えてくれなくなるよ。
0860デフォルトの名無しさん
NGNGこれは、これは。全知全能のカビ様。
あバレな私めをお救いくだざいましぇ(ケケケ
0861デフォルトの名無しさん
NGNGお偉いさんの発言だね。うふ。
素人がカラスの時の苦労がわくぁんねぇだろな。
0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNG馬鹿は馬鹿なりに頭いいと思い込んでるんだろな
0864デフォルトの名無しさん
NGNG>>6
0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNG今時WebProg板にスレがあるのがおかしい。後方互換のためにあるようなもんだ。
0867デフォルトの名無しさん
NGNG0868844
NGNG了解です。Win32::SerialPort使うことにしました。
ActivePerlではPPMに対応してないみたいですが、
見た感じPurePerlなのでそのまま使おうかと思います。
英語は何とか翻訳しつつできると思いますが、
>>853の言うとおりシリアル通信についてほとんど知識がないので
まだ使いこなせないかも・・・
0869デフォルトの名無しさん
NGNGのようにモジュールを作成し、
http://ingres.t.u-tokyo.ac.jp/Lecture/WebApplication/text/node224.html
のように呼び出すと
Undefined subroutine &main::tashizan called at keisantest.pl line 11.
のようなエラーがでます。
my $val3 = tashizan($val1, $val2);
のところを
my $val3 = Keisan::tashizan($val1, $val2);
すれば動きますが、これが正しいのでしょうか?
当方の環境は以下の通りです。
This is perl, v5.6.1 built for cygwin-multi
0870デフォルトの名無しさん
NGNG理解して使えよ
0871デフォルトの名無しさん
NGNG0872852
NGNGWin32-SerialPortはWin32-APIを使ってシリアル通信関係のAPIをPerlで
使えるようにしたモジュール。->要インストール、Win32-API
だから、「Windows RS232C API」とか「Windows シリアル通信 API」などを
キーワードにしてググればperl以外でのAPIの使用例がヒットするはず。
参考になると思う。 ガンガレ!
0874デフォルトの名無しさん
NGNGありがとう、がんばります!
といいたいところだけど、理解してないから聞いてんだけどなぁ。
つーか使ってるんじゃなくて使おうと思ってるだけだけど。
まあ、それはいいとして「perl 名前空間」というキーワードでぐぐってみたらExporterの使い方に問題があたかもしれない。
上記URLサンプル
@EXPORT = qw(Tashizan);
私的改訂版
@EXPORT = qw(tashizan);
0875デフォルトの名無しさん
NGNG>>6
0876デフォルトの名無しさん
NGNGそれを初めてある数字が出てくる場所から文字列の最後までに切り詰めるにはどうすれば?
例)
123456789というのを
初めて5が出てくるところから最後までの
56789に切り詰める(置換する)
s/(5\d+)$/$1/ とやったら全部まるまるマッチしてしまう・・・
0877876
NGNG「初めて」の数字が先頭に来ることもありますし、最後の1文字(1桁目)だけになることもあるし
文字列に複数回出現することもあります
0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNGちなみにそれ、「全部まるまるマッチしている」わけじゃないよ。
マッチしているのは"56789"の部分だけ。
"123456789"の中の"56789"を"56789"に置き換えた結果が
元の文字列と何も変わらないのは当然のことだよ。
0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNG$num = 123456789;
$num = substr $num, index($num, '5');
0883デフォルトの名無しさん
NGNG$num =~ s/^.*?(?=5)//;
0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNGあ、そうですね・・・(゚д゚;)
皆さんしょーもない勘違いに付き合って下さってどうもです
0886デフォルトの名無しさん
NGNGどうしたらいいですか?
0887_
NGNG0888デフォルトの名無しさん
NGNGプラグマってありましたっけ?
0889デフォルトの名無しさん
NGNG●を買う
0890デフォルトの名無しさん
NGNGほれ
http://pc2.2ch.net/tech/kako/1048/10485/1048519394.html
0891デフォルトの名無しさん
NGNG0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNG2ちゃんねるプラスという雑誌に書いてあるIDとパスを(ry
0894デフォルトの名無しさん
NGNGHTTP(S)のPOSTで。(CGI)
0895デフォルトの名無しさん
NGNGできるよ。
> HTTP(S)のPOSTで。(CGI)
あっそ。(・∀・)カエレ
0896デフォルトの名無しさん
NGNGPerl6::Classesとかだなぁ。
http://search.cpan.org/modlist/Perl6 を山椒。
つかもうcpan色戻ったのね。
戻ったら戻ったでなんだかまた落ち着かないなぁ。
0897デフォルトの名無しさん
NGNGopen(FILE, ">c:\\dir\\file.txt");
と書けば作れますか?
chdirを使わないとダメですかねぇ?
まぁ自分で書いてみればいいんですけど…。
0898デフォルトの名無しさん
NGNG分かってんならやれ
0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNG0901デフォルトの名無しさん
NGNG0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNG/◎;;;,;,,,,ヽ
_ ム::::(,,゚Д゚)::| < (ry
ヽツ.(ノ:::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNG何でしょうか?
例えば、
<font size="+2" color="red">大きな赤い文字</font>
だと、タグ名=font、size="+2"、color="red"、値=大きな赤い文字
みたいに取り出すイメージです。
0906デフォルトの名無しさん
NGNGperlをインストールしても、モジュールは何がインストールされていて
どういう事ができるか、ドキュメントを読みもしない香具師がこういう
クソな質問をする。
0907デフォルトの名無しさん
NGNGまぁ落ち着け。
>>905は定番を聞いてるだけなんだからいいじゃないか。
それぐらい答えてあげようよ。
>>905
定番なんか聞いてどうすんだ。自分の使いやすい奴を使えばいい。
0908デフォルトの名無しさん
NGNG質問する前に
http://www.cpan.org/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/ を
眺めたのか?と小一時間.....(ry
HTMLを(構文)解析するを英訳すると何になるか考えたことがあるのか?と小一時間.....(ry
0909デフォルトの名無しさん
NGNGHTML::Parserだべ。解析するHTMLはutf8に変換した方が吉。
package FontParser;
use strict;
use HTML::Parser;
use base qw (HTML::Parser);
sub start {
my( $self, $tagname, $attr, $attrseq, $origtext ) = @_;
if ($tagname eq 'font') {
$self->{font}++;
for my $key (@$attrseq) {
my $value = $attr->{$key};
print "$key: $value\n";
}
}
}
sub text {
my($self, $origtext, $is_cdata) = @_;
print "text:$origtext\n" if $self->{font};
}
sub end {
my( $self, $tagname, $origtext ) = @_;
$self->{font} ='';
}
1;
use FontParser;
my $str = '<font size="+2" color="red">大きな赤い文字</font>';
$p = new FontParser;
$p->parse($str);
0910デフォルトの名無しさん
NGNGs/$self->{font} ='';/$self->{font} ='' if ($tagname eq 'font');/
0911デフォルトの名無しさん
NGNGスクリプトを置いているサーバーから、別のサーバーにおいてあるphpで書かれた
ファイルを実行したときに出力されるHTMLソースをコピーし、スクリプトを置いてある
サーバーに保存する。
どういう方法があるかお願いします。
0912_
NGNG0913デフォルトの名無しさん
NGNGブラウザで〜.phpや〜.cgiにアクセスして表示されたページをファイルに保存する
これと同じ働きをするプログラムを組めばいい
0914デフォルトの名無しさん
NGNG0915デフォルトの名無しさん
NGNGいや、だからperlで〜.phpや〜.cgiにアクセスする方法を知りたいんですが。
0916デフォルトの名無しさん
NGNGLWPモジュールを使えばできる。
0917デフォルトの名無しさん
NGNGLWP
あとはググれ
じゃーな
0918デフォルトの名無しさん
NGNGhttp://digit.que.ne.jp/work/index.cgi?Perl%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB%2FLWP
0919デフォルトの名無しさん
NGNGありがとうございます。LPWは入っているようなので、試してみたらできました。
・・・意外と簡単なんですね・・・
0920913
NGNG0921デフォルトの名無しさん
NGNG0922デフォルトの名無しさん
NGNGperlを頻繁に使ってるって人はこの板にどのくらいいるの?
出来ればOSの種類とかも教えてくれると面白いカモ。
0923デフォルトの名無しさん
NGNGで、案外perlはやるなってコトでwinでもTk入れて遊びで動かしたりしてる。
unix系は持ってないし。
0924デフォルトの名無しさん
NGNGあと、他にもやってるが素性がバレるでな(w
0925デフォルトの名無しさん
NGNGネットワーク絡みとか、何でもやらせてる。
バイナリも扱う。
モジュールは殆ど使ってない。
昔ならCで書いてたのを、より楽な言語でやってるだけ。
0926デフォルトの名無しさん
NGNG5で挫折した。
0927デフォルトの名無しさん
NGNG簡単に組めるし文字列にも強いからちょっとしたデータコンバータに便利だな。
0928デフォルトの名無しさん
NGNG0929デフォルトの名無しさん
NGNG0930デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNG漏れがそうだよ。翻訳をやっていて、辞書のデータをコンバートするために
覚えた。その後もユーザ管理とかデータ処理などに使っている。
0933デフォルトの名無しさん
NGNG簡単なperlくらい必須科目にしたくなるな
0934659
NGNGCGI以外ではプログラマのための言語って匂いがするなぁ。。
自作実行、みたいな。
そうでもない?
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNGこれでGUIもサクッとできたら(俺の中では)完璧だなぁ。
(Tkはかっちょ悪いので使いたくないです)
0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNGキーボード半田付けした人
0942デフォルトの名無しさん
NGNG> そのモジュール、スレッド対応Perlでは動かなかった...
HTML::Parserがスレッドセーフじゃないってことか?信じられんな。
HTML-Parser-3.28のソース眺めたけど、無問題と思えるのだが。
オイ、オマイ等の中で分かる香具師いらっしゃいますか?
0943デフォルトの名無しさん
NGNGこのようにして1日更新のないファイルを削除するようにしているのですが
XREAというレンタルサーバーでは動いてくれません。
なにか回避方法はないでしょうか?
0944デフォルトの名無しさん
NGNG0945デフォルトの名無しさん
NGNG$line = <FH>;
print $line;
てやってもdata.datの内容が表示されないんだけどなんでですか?
data.datには文字列が一行だけ入ってます。
0946デフォルトの名無しさん
NGNG0947デフォルトの名無しさん
NGNG何故それで読めると思いましたか?
0948945
NGNG/ ,―――─―-ミ
/ // \|
| / ,(・ ) ( ・) ハァ
(6 つ | ハァ
| ∪__ |
| /__/ /
/| ∪ /\
夏厨だから
0949デフォルトの名無しさん
NGNG何か回避策はありますか?
0950(・∀・)ニヤニヤ ◆IuDnGO5LnY
NGNGif $0 == __FILE__
xxx
end
ってのがありますが、Perlで同等のことはできませんか?
Perlにはちゃんとテスト用の機構があるのは知ってますが、
・require/use等で使われたときは実行されず、
・直接起動したときだけ実行される
・Perl4でも動作する記法
を知りたいのです。
よろしくおながいします。
0951デフォルトの名無しさん
NGNG5.005_03なのですが、Can't load ..... Parser.so
DynaLoader.pmでPL_stack_max(だったかな)でundefinedうんぬんて出てきました。
Perlのバージョンが悪いのかな。
Parser.pmはバージョン3.08でした。
0952デフォルトの名無しさん
NGNGもともとPerlで使われてた手法だろ。
0953ハッカ飴
NGNG少なくとも俺の環境では正しい結果を返さないんだが。
0954デフォルトの名無しさん
NGNG0955デフォルトの名無しさん
NGNG0956ハッカ飴
NGNGドキュメントにある
a x b y c z p d q
a b c a x b y c z
でさえ
a x b y c z p d q
a b c a x b y c z
になっちゃうんだぜ?
0957デフォルトの名無しさん
NGNG0958ハッカ飴
NGNGa x b y c z p d q
a b c a x b y c z
0959デフォルトの名無しさん
NGNG0960デフォルトの名無しさん
NGNG寂しそう。
0961ハッカ飴
NGNGじゃあ、こう。.は空白だと思ってくれ。
a.......x.b.y.c.z.p.d.q
a.b.c.a.x.b.y.c.z
サンプルスクリプトも載せようか?
俺はググってもこの話が見つからないことが不思議でしょうがないんだ。
何か教えてくれるなら、労力は惜しまないぞ。
0963デフォルトの名無しさん
NGNGここ、スレッドあぼーんするかな。
0964デフォルトの名無しさん
NGNG0965デフォルトの名無しさん
NGNGどっちが使えないんだか分からん
0966デフォルトの名無しさん
NGNGこのスレッドに恨みでもあるの?
0967デフォルトの名無しさん
NGNG( ´Д`) <みなさーん、お茶が入りましたよ〜
/ \
| l l | ..,. ., .,
| | | _|。.:_::゜。-.;.:゜。:.:;。
ヽ \_ .。'゚/ `。:、`;゜:;.::.。:.:。
/\_ン∩ソ\ ::..゜:: ゚。:.:.::.。.。:.
. / /`ー'ー'\ \ ゜: ::..゜:: ゚。:.:.:,。:.:.
〈 く / / ::..゜:: ゚。:.:.:,.:.:.:。:.:,
. \ L ./ / _::..゜:: ゚。:.:.:,.:.:,.:.:.:,
〉 ) ( .::旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦.
(_,ノ .`ー'旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦.
09682バイト文字に対応したカレントディレクトリを取得するには?
NGNGカレントパス名に、文字化けする40種の文字列
(「表」「能」等、所謂「\」コードを含む文字列)
があると、正しく処理されないのですが…
Windows のActive State Perlで、
例えばカレントが
C:\表示\
である場合、
use Cwd;
print getcwd();
の結果は
C:/・示
となります。
どうしたら回避できるでしょう?
(2バイト文字を含むカレントパスを正しく得られるgetcwd
等はないのでしょうか?)
(EUCで書いても同じです。jperlはNGです)
0969デフォルトの名無しさん
NGNG$path=`cd`;
`はバッククォート。
0970デフォルトの名無しさん
NGNGcdは帰ってこないでしょ
09712バイト文字に対応したカレントディレクトリを取得するには?
NGNGごめんなさい。perlappに内包したいので、
例え標準関数でも外部プログラムは使わず、
perlの中だけで済ませたいのですが…
何か方法はないでしょうか?
0972デフォルトの名無しさん
NGNGuse Cwd;
use File::Spec;
my $cwd = getcwd();
$cwd = File::Spec->canonpath($cwd);
print $cwd;
0974972
NGNGFile::Spec(File::Spec::Win32) の canonpath で / を \ に戻してるわけだから、
とりあえずWin32環境では問題なさそう。
他の環境も大丈夫だとは思う。
0975デフォルトの名無しさん
NGNG探してたらこんなの見つけました(既出だったらごめん)。
http://www.bahnhof.se/~johanl/perl/Loft/
ただこれはソフトもマニュアルも英語なんですよね。
別に英語でもなんとか使えると思いますが、
二本のPerl界の発展のためにソフト・マニュアルのの日本語化を
してくれるような素敵な香具師はいらっしゃいませんか?
(By 日本のPerl界を憂うもの)
0976デフォルトの名無しさん
NGNG二本→日本でした。
0977デフォルトの名無しさん
NGNGあんたがやったら?
0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNGそれ言われると思った。
残念ながら英語に関してはあまり得意ではないので、
誰か英語得意な方にお願いしたいなと思っております。
0980ハッカ飴
NGNGググっても相変わらずこの話は見つからないし。ホント謎だよ。
例1
テキスト1:
abc
テキスト2:
ababc
結果1
ab[ab]c
(テキスト1のbc間にabを追加しろ)
例2
テキスト1:
a
b
c
テキスト2:
a
b
a
b
c
結果2
a
b
[a]
[b]
c
(テキスト1の3行目にa、次の行にbを追加しろ)
0981デフォルトの名無しさん
NGNGActivePerl build 805 +WindowsXPでは駄目。
ActivePerlはMS-WindowsでShift-JISが
使われているということを無視してる。
0982デフォルトの名無しさん
NGNG>残念ながら英語に関してはあまり得意ではない
得意になればいいじゃん
0983ハッカ飴
NGNG/ 全てを \ に置き換えてもダメだろう。
シフトJISについて調べて、置き換えるべき / だけを置き換えないと。
シフトJISだから、第1バイトを探すのは簡単。
use Cwd;
$cwd = getcwd();
のあとで、$cwd =~ s%(シフトJISの第1バイトにあうパターン)/%\1\\%g;
0984デフォルトの名無しさん
NGNGいや〜誰かにやって欲しいなぁ。
ホント他力本願なんだけど・・・
もう少しでこのスレも6箱目に突入ですなぁ。
(しみじみと)
0986デフォルトの名無しさん
NGNG09872バイト文字に対応したカレントディレクトリを取得するには?
NGNGで無事解決しました。感謝ですm(__)m
canonpathというの自体初めて知りました。。
書き込み入れる前にも色々調べはしたんですけど…
こういうのって、何を参考に調べれば良いんでしょう?
0988デフォルトの名無しさん
NGNGシフトJISなら2バイト文字で /(0x2F) が出てくることはないし、
Windowsじゃファイル名に / も使えないから、元々含まれてる
ことはないと判断して単純に全置換でいいと思ったんだけど……なんか抜けてる?
あ、それとも / 区切りのパスを得るために、ってこと?
0989デフォルトの名無しさん
NGNG変換したいのですがどうすればいいでしょうか?
0990デフォルトの名無しさん
NGNG$str .= '\x9A";
0991デフォルトの名無しさん
NGNG$ch = char(0x9A);
0993デフォルトの名無しさん
NGNGハァ?
0994(・∀・;)ニヤニヤ ◆IuDnGO5LnY
NGNGそうなんですか?
そうすると、Rubyの↓を
if $0 == __FILE__
xxx
end
Perlに直すにはどうすればいいんでしょう。
if ($0 eq ??) {
xxx;
}
??の部分が分かりません。。
0995デフォルトの名無しさん
NGNG-e
0996デフォルトの名無しさん
NGNG0997(・∀・;)ニヤニヤ ◆IuDnGO5LnY
NGNGえっ、えっ、・・・なんだかものすごい勘違いをしていたようです。
if ($0 eq __FILE__) {
xxx;
}
これでいいのれすね。ありがとうございました。
んでは、逝ってきます★
0998デフォルトの名無しさん
NGNG逝くまえに新スレ立てて
1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。