CGIに依存しないPerlの話題一般
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。
2001/05/31(木) 21:49ID:bKRSBFew・モジュール、オブジェクト指向プログラミング
・Perl6や.NET対応など
・各種GUIツールキット(Perl/Tk, Gtk-Perlなど)
・他言語による拡張(Inline::*, XS, Swigなど)
についてマターリと語り合うスレッドです。
#CGI関連の話題は、なるべく専用スレッドで。
0896nobodyさん
02/07/21 09:28ID:???なんつーか以前のメンバーは何処逝ったね?
0897nobodyさん
02/07/21 09:33ID:???2chでまともな話をしようとする方が馬鹿げてると思いますがね。
貴方にとって有益でも、周りの人間から見れば低レベルで下らないことでしかない時も多いですからね。
可哀想な人だ。
0904nobodyさん
02/07/25 07:03ID:???0905nobodyさん
02/07/26 11:51ID:JxVLPbo8XSを使用してperlとCとの構造体のデータのやりとりをしたいんですが。
例えば
C側定義構造体
typedef struct data{
char aa[20];
char bb[20];
int cc;
} DATA;
というものを定義して
samp::samp1(DATA *aaa)
で受け取りたいと。
typemap T_PTROBJ
でマッピングした場合、perl側のデータの記述は
どのように行えばいいんでしょうか?
@aaa = ("11","111".1,"22","222",2);
@aaa = (["11","111".1],["22","222",2]);
この二つはためしてみてだめだったわけですが
0906nobodyさん
02/07/26 11:52ID:???Perlでパケットの受信及びデータ解析を勉強しているんですが、
IPヘッダの中の ある1バイトの中に3ビットと5ビットの2つのデータが
入っていて、それをビット単位で分割する方法が分からないんです。
今のところ $OneByte という変数に
その1バイトのデータを格納しているのですが。。。
どなたかご存知の方がいらっしゃいましたらご指南お願いします。
0912nobodyさん
02/07/26 17:03ID:???君みたいな糞厨房は消えた方がいいよ。
なにを勘違いしているのかは知らないが。
俺は>905の意図することが分かりづらい、と言っている。
>samp::samp1(DATA *aaa) #これは何? CでもなしPerlでもなし。C++ならこう書けるが。
> typemap T_PTROBJ # 何をマッピングしたのか書いていない。
>@aaa = (["11","111".1],["22","222",2]); # これは何を意図しているのか。
#aaメンバに11,bbに111,ccに1が入って...ということなのか。これでうまくいくはずはないが。
0913nobodyさん
02/07/26 17:10ID:???0917906
02/07/26 21:07ID:???あ なるほど。。ビットをシフトさせるんですね
全然思いつきませんでした。。(汗
昨日からずっと悩んでいただけに凄く嬉しいです。
ありがとうございました。
この板には1年振りぐらいに来たんですが、
ログを見ていると以前よりも煽り、叩きがひどくなっていて
正直質問しようか迷ったんですが。。
まだまだ親切な方がいるんですね また来ます。
0918nobodyさん
02/07/26 22:22ID:X9MpLpMfええとちゃんと書きます。ただしXSソースになりますが
0919905
02/07/26 22:41ID:X9MpLpMf--------------------------
#include <stdio.h>
(中略)
typedef struct data{
char aa[20];
char bb[20];
int cc;
} DATA;
MODULE = samp PACKAGE = samp
void
samp1(aaa)
DATA *aaa
CODE:
while(0){
//構造体のデータ処理
}
----------[eof]-----------
typemap(データ型定義ファイル)
--------------------------
DATA *<tab>T_PTROBJ
----------[eof]-----------
ここまでがxsのソースと、perlとの受け渡しのデータ型定義です
0920905
02/07/26 22:41ID:X9MpLpMftest.pl
--------------------------
#/use/local/bin/perl
use samp;
#Cの(xsの)ソースに引き渡すデータを作成(仮に$aaa)
&samp1($aaa)
----------[eof]-----------
起動をかけるのはtest.plで、呼び出すのが、samp::samp1()になります。
要は、perlのソースから、Cにデータを渡して処理したいのですが、その
データを構造体で受け渡ししたいということです。そのときperl側でのデー
タの定義はどうすればよいか教えて欲しかったのです。
単に要素を配列に入れるだけでは、アンマッチが発生するようです。
"自分で"書かなきゃいけないんだよ。大変だけど、Perlはそこまでは面倒を見てはくれないよ。
とりあえずtypemapファイルの構文を勉強してください。
ExtUtilsディレクトリにあるデフォルトのtypemapも参考になるよ。
0923nobodyさん
02/07/27 08:18ID:klNDdAyCtelnetを使えないレンタルサーバで使いたいので、
同じフォルダに入れるだけで使える手軽な日付計算ライブラリないですかね?
0924nobodyさん
02/07/27 20:55ID:???ファイルのタイムスタンプを変更したいのですが、可能でしょうか?
5.7はビルド出来たんだけど…。やっぱり無理せずActivePerlを待とう。
>>924
可能か否か、という答えが欲しいの?そりゃ可能だけど。
でも多分知りたいのは可能か否か、じゃ無くてutime()関数のことだよね。
Perl初心者スレでは、スレ違いを指摘したんじゃなくて、
その質問の仕方が悪い、ということを指摘されたんだと思うよ。
0926924
02/07/28 01:20ID:???>その質問の仕方が悪い、ということを指摘されたんだと思うよ。
そのままの質問だったので、書かなくても解る事をだらだら書いてうざがられるよりは良いかと思ってました・・
ボキャブラリーが少なくて申し訳ないです。
0927
02/07/28 08:14ID:0sVNzuOfDigest::MD5 をインストールしないでできますか?
CGI で使おうと思っているのですが、同じディレクトリに
上記に付属の MD5.pm を置いて use MD5; とか記述
するだけではできませんよね?
rfc1321 の日本語版は読んでみたのですが、全然
わかりませんでした。
0928nobodyさん
02/07/28 10:16ID:???多分動く。がんがれ。
0930nobodyさん
02/07/30 23:42ID:ZOuiEpQs通常であればシェルで
edquota ユーザー名 (Enter)
でエディタが起動して
Disk quotas for user okada (uid xxx):
Filesystem blocks soft hard inodes soft hard
/dev/hdax xxx xxxx xxxx xx x x
上記のテンプレートを編集する事になるのですが、
これを Perl のスクリプトで変更することはできないのでしょうか?
exp) perl ./edquota.pl ユーザー名 blocks値 soft値 hard値 inodes値 soft値 hard値・・
Linux Slackware8.0
Perl5.6 を使用しております。
それでは宜しくお願いいたします。
0931nobodyさん
02/08/05 22:26ID:???なんてのがあるらしい。使ったことはないけど。
0932マルチです
02/08/09 23:54ID:yPKlUuWH↑人がいません
Perl6でのファイルの開き方がわかりません。
おしえて!
0933nobodyさん
02/08/10 01:37ID:???そんなドラスティックな変化は望んでないんだが・・・
@arry[0]
%hash{key}
う〜ん
0934nobodyさん
02/08/10 01:42ID:???どのRFCが新しいのか分からん
後方互換性頼りで良いじゃん
0935nobodyさん
02/08/10 01:49ID:???0936932
02/08/10 01:51ID:???自分がいまテストしてるPerl6はParrotにふくまれてたやつで
昨日からopen関数が実行できねーよ!みたいな。
0937nobodyさん
02/08/10 02:30ID:???世の中の人間はアンタの50年来の嫁じゃ無いんだから
言葉に乗せなきゃ何言いたいのか解らないよ
そんなに大変ならPERL6のMLに投げてみ
HELP PLZ!!!! ってさ
0939932
02/08/10 02:37ID:???これが俺には何を言ってるのかわからん
0941nobodyさん
02/08/10 04:02ID:SdI5yvJjopen FH,file;
でいいみたいだよ
がんばってね★ミ
0942nobodyさん
02/08/10 04:21ID:???ここguzipが居なくなって廃れたなあ
みんなPerl6入れてるの?
早くParrotでスピード上げて遊びたいな
0943932
02/08/10 04:45ID:???"arse error [line 2]: Invalid statement near "open FH,"my4.p6";
Can't call method "tree" on an undefined value at ./perl6 line 183.
============================================================
[my5ofile.p6]
sub main(){
open FH,"my4.p6";
print "ujgh\n";
}
0944_gunzip
02/08/10 05:21ID:???my $fh = open $path : mode => 'r' or die "Can't open";
とします。
parrot-latest(8/9現在)では、open関数は"not yet implmented"です。
0946nobodyさん
02/08/10 15:27ID:???死ねよお前
0947nobodyさん
02/08/10 15:30ID:???死ねよお前
0948nobodyさん
02/08/10 15:43ID:???死ねよお前
0949148
02/08/10 15:51ID:???0950nobodyさん
02/08/10 16:18ID:???常数(use constant)を別モジュールにまとめて利用しようとしたのですが、
呼び出し元ではその常数を使えますが、別に呼び出しているモジュールでは
strict subsに引っ掛かってしまいます。
no strict subsをするしか無いのでしょうか。
0951nobodyさん
02/08/10 16:21ID:???0952nobodyさん
02/08/10 16:27ID:???0953nobodyさん
02/08/10 22:43ID:M8XpcEtN>>951
スペース確保出来次第アップします。
今はまだアップロードできる場所ありません。
ちなみに常数モジュールでは、
package Hoge;
use strict;
use base qw(Exporter);
@Hoge::EXPORT = qw(
const1;
);
use constant const1 => 0;
1;
みたいにして、本スクリプトおよび、
そこから呼び出されるモジュールでuseして、双方で利用しています。
>>952
そのモジュールでもuseしているのですが・・・
0954nobodyさん
02/08/10 23:30ID:???何か勘違いしてる予感。
それだと多分no strict 'subs'しても期待する動作はしないでしょ。
ちなみにmainパッケージで定数を定義すれば常に"::"接頭子で参照できるよ。
普通は個別にimportした方がいいけどね。
package main;
use constant TRUE => 1;
package hoge;
print ::TRUE;
0956nobodyさん
02/08/12 18:48ID:???がいつの間にかリニューアルしてるのね
0957Dream ▼
02/08/15 06:25ID:???0959エロ助
02/08/15 11:30ID:h1WzO6+xhttp://www.kemokemo.com/products/picchabo/picchabo203.lzh
上(掲示板CGI)に下(ランダム広告CGI※呼び出しによりSSI使用しない方)を設置したいのですが『インターネットサーバーエラー』になります。(;_;)
一通りパーミッション設定などを説明どうりやってみたのですが設置できないんです。。(;_;)なぜでしょう??(;_;)
どうか教えていただけないでしょうか。。(;_;)
また呼び出しのときの記述が『require 'rand.pl'; rand::main($Op1,$Op2,$Op3);』を記述しろと書いてあったので正確に記述したのですが『インターネットサーバーエラー』になってしまうんです。。(;_;)
『$buffer』でも記述したんですがだめでした。
http://taihei.cc/pc/cgis/random.html
http://taihei.cc/pc/cgis/randban11.lzh
0960nobodyさん
02/08/15 11:34ID:???0961nobodyさん
02/08/15 14:35ID:oToZdaAw全然ファイルが落ちてこない
0962nobodyさん
02/08/16 12:47ID:???適切なミラーを使うべし。
http://www.cpan.org/SITES.html
0963nobodyさん
02/08/16 18:12ID:yy/Fieutmy ($To,$Sub,$Name,$Value) = @_;
my $FromMailAddr = '[email protected]';
my $msg;
my $smtp;
if ($MailServerActive){
$smtp = Net::SMTP->new('192.168.2.2');
if (!$smtp){
$msg = "SMTPサーバ[$Server]との接続に失敗しました\n";
$msg = jcode($msg)->sjis;print $msg;exit;
}
$Sub = jcode($Sub)->mime_encode;
$Name = jcode($Name)->mime_encode;
$Value = jcode($Value)->jis;
$smtp->mail($FromMailAddr);
$smtp->to("$To");
$smtp->data();
$smtp->datasend("Content-Transfer-Encoding: 7bit\n");
$smtp->datasend("Content-Type: text/plain; charset=\"iso-2022-jp\"\n");
$smtp->datasend("From:\"$Name\"\n");
$smtp->datasend("To:$To\n");
$smtp->datasend("Subject:$Sub\n");
$smtp->datasend("\n");
$smtp->datasend("$Value\n");
$smtp->dataend();
$smtp->quit;
return 1;
}
return 0;
このようにしてるのになぜかjphoneのメアドで受信したときのみ
タイトルが "=?ISO-2022-JP?Bッテ感じに文字化けします・・・・ナゼでしょう?
0964nobodyさん
02/08/17 13:27ID:???0968967
02/08/19 00:23ID:???こっちでどうぞ
http://pc.2ch.net/test/read.cgi/php/1024741312/
http://hiero_pl.tripod.co.jp/
0971mad-p ◆FaOqqhYM
02/08/20 01:15ID:???Linux Conferenceかjus勉強会でParrotについて講義してください。
おながいします。
0973nobodyさん
02/08/20 01:30ID:???print 'HIT' if vec($a,4,1);
でHITと表示されるのはPerlでは普通なのですか?
0974nobodyさん
02/08/20 05:55ID:???ネタ?それともvecのマニュアルも読めない馬鹿?
0975nobodyさん
02/08/20 08:01ID:5HfNqmVJ例えば
$a = { b => { c => { d=> { e => "f" } } } };
で、
$b = $a->{b}; $c = $a->{b}{c}{d}; とあって、
&rel($b,$c) で "{c}{d}" とか返してくれるような(表記方法は何でもいいんだけど)
0978nobodyさん
02/08/20 12:04ID:???0979mad-p ◆FaOqqhYM
02/08/21 00:10ID:???ガクーリだよ。
しかし、Parrotを実際にコンパイルしてる人に
例会でも会ったことないので、正直どんな感じか教えてホスイ。
>>936
図星です。すんまそん。
おいらは勉強会とかでえらそうなこと言ってるけど、
ApoとExe(とRFCとperl6-language)あたりから知識得てるだけなんで。
0980nobodyさん
02/08/21 00:22ID:???オープントリップって言うのは適当に考えたもんだから気にしないでいい
cygwinがありゃコンパイルはできるはずなんだがなぁ〜。
==perl初心者コ−ナーpart14のメモ
*.p6 //perl6 のコード ->parrot/languages/perl6/perl6[perlスクリプト] 使用
*.colac //C#っぽい ->parrot/languages/cola/colacc.exe 使用
*.imc //.,,pasmとなにが違うの? ->parrot/languages/imcc/imcc.exe 使用
*.pasm //、、、アセンブラ? ->parrot/assemble.pl 使用
*.pbc //perl byte Code ->parrot/parrot.exe 使用
0981メモ
02/08/21 00:25ID:???./colacc.exe kusokote.colac =>a.imc
./imcc.exe a.imc =>a.pasm
./assemble.pl a.pasm => a.pbc
./parrot.exe a.pbc [実行]
[perl6 の流れ]
./perl6 test.p6 ->test.imc test.pasm test.pbc 生成 ->test.pbc [実行]
*assemble.pl自体はXSとかつかったPerlスクリプトでないのでActivePerlでも実行できた(はず)
perl6もActivePerlで動きそうだけどまぁ試したときは動かんかった。
(コンパイルしたオブジェクトコード参照してる?)
まぁassemble.plが動けばparrot.exeを試すことぐらいはできるはず。
0982nobodyさん
02/08/21 00:48ID:???ホント、ゴキブリみたいだな(大爆笑)
0983nobodyさん
02/08/21 02:18ID:oahOU1tj暗号化(ぱっと見無意味な文字の羅列に見える程度でOK)して、
別のサーバーで復号化するようなスクリプトってかけますかねぇ?
できれば、日時かなにかを暗号キーにして、1時間程度時間が経過すると
その文字列が無効になるような感じがよいのですが・・・
時間はntpdである程度シンクロしていて、多少のずれているときはあきらめるとして。
0984nobodyさん
02/08/22 14:05ID:ZyNFWurgtr/a-zA-Z/Za-zA-Y/ とかやって、1時間毎に Za-zA-Y 部分ずらす、とか。
そのオフセット・有効時間ともに保存しておく、とか。
0986983
02/08/23 00:12ID:???でも、ずらすのって、
%word(00,"Za-zA-Y"
,01,"YZa-zA-X"
,02,"X-Za-zA-W"
,03,"W-Za-zA-V"
,04,"V-Za-zA-U");
tr/a-zA-Z/$word{$time}/;
こんな感じですかね、、24パターンくらいなら大丈夫かな?
0987mad-p ◆FaOqqhYM
02/08/23 13:36ID:DBSoD3F/tr///の変換リストには変数展開が使えないので、eval使ってね。
0988名無しさん@Meadow
02/08/23 14:15ID:???Crypt::OTP
レス数が950を超えています。1000を超えると書き込みができなくなります。