5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Perlについての質問箱 4箱目

1 :Mr. Moonlight ◆r0zx1vMqaw :03/03/25 00:23
"The duct tape of the Internet"こと、
Perlについての質問箱です
"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のみに関係する質問を取り扱っていこうと思います。


943 :デフォルトの名無しさん:03/05/14 18:22
932です。

解決しました。有難うございます。

「”」で囲わなかったらうまくいきました。
って、簡単すぎるよ・・・。_| ̄|○



944 :デフォルトの名無しさん:03/05/14 18:32
>>938
> gpc ./Main.pl
> としてもエラーがでます。
gpc: command not found か?

segmentation faultが起きるってのはperl自体のバグ。

gdbの使い方は

$ gdb /usr/bin/perl core

だが、デバッグオプションつけてコンパイルいてないと無理だろうし、ソース
もないとダメだから、自分でコンパイルし直すのが確実。


945 :デフォルトの名無しさん:03/05/14 18:41
>942
うわ〜ん

946 : ◆hMJAPH9PWA :03/05/14 20:13
>>936
segmentation faultの原因はわからないが、find程度のことなら自前でやれば問題はないと思う。
標準ライブラリのFile::Findと付属のユーティリティfind2perlを参照のこと。

947 :デフォルトの名無しさん:03/05/15 09:55
>>925と同じことをしててPerlメモを参考にしてるのですが、
うまくいきません。

#$strの最後の文字が途切れているか判定する
if($str=~/\x8F$/ || $str=~tr/\x8E\xA1-\xFE// % 2)
{
chop($str);
}

これってもしかしたら半角カナが入ってた場合は思うような結果は得られませんか?

948 :デフォルトの名無しさん:03/05/15 10:59
plの1行目を以前は
#!/usr/bin/perl
で動いていたのですが、なぜか、今は
bash: ./Main.pl: bad interpreter: No such file or directory
というエラーが出て動きません。
#!/usr/bin/perl -w
など、何らかのオプションをつけると動くのですが、
これではすこしまずです。
なぜ、こうなるのでしょうか?




949 :デフォルトの名無しさん:03/05/15 11:44
>>948
俺は以前、ソースをWinで編集してUnixのサーバーに転送って形で
作業をしてたら、改行コードのせいで同じような問題がでたことあるよ。

950 :デフォルトの名無しさん:03/05/15 12:50
>>949
どうもです。
ですよね・・バイナリモードとか気にして送らないとだめな
ばあいですね。

でも、今回は、サーバー上で編集してるんです。
EUCできっちりしてるし、
消して書き直したりもしたけど、やっぱり無理。

なんでだろう・・

951 :デフォルトの名無しさん:03/05/15 13:02
head ./Main.pl | cat -v
すると ^Mがでてこない?

952 :デフォルトの名無しさん:03/05/15 13:17
あれ!
#!/usr/bin/perl^M
^M
が出てきます。どうしてでしょう?
これだからならないんですね・・・


953 :棄教者 ◆egKIKYO7cg :03/05/15 13:50
>>950
EUC は文字コードの話。改行とは関係ナッシング。
ソースはリモートホスト上でスクラッチしたのならわからないが、
ローカルホスト上で書いた改行コードがアレなファイルをリモート上で編集しても
改行コードはアレのままだYO!

安直な方法

nkf --unix < kusatta_kaigyo_code_no_text > matomona_kaigyo_code_no_text

954 :952:03/05/15 15:11
>>951さん
>>953さん、
まさに適切なアドバイスをありがとうございました。
文字コードと改行コードは別だったのですね・・
知りませんでした。
ありがとうございました。

955 :bloom:03/05/15 15:13
http://homepage.mac.com/ayaya16/

956 :デフォルトの名無しさん:03/05/15 19:11
perl5.8の場合、
元の文字コードがわからないものを
eucに変換することはできないのでしょうか?

957 :デフォルトの名無しさん:03/05/15 19:24
.qmailやaliasesからperlでメールを受信しています。

ただ添付ファイルがあるメールやHTMLメールを受信した場合に
処理が変になってしまいます。

このあたりの処理をやってくれるモジュール類でおすすめのものがありましたら教えてください。


958 :デフォルトの名無しさん:03/05/15 19:31
女の子でも安心して買えるよ!
新品アダルトDVDが税込み900円〜!
http://www.dvd-yuis.com/

959 :957:03/05/15 19:51
参考になるページだけでも良いので、
もしご存じでしたら教えてください。
Googleで色々探してみたのですが、良いページがなかなか無くて。


960 :ray:03/05/15 20:15
perlからpostgresqlに、データを入れるのですが、
たまに↓のようなエラーが出ます。
DBD::Pg::st execute failed: ERROR: Invalid EUC_JP character sequence found (0xaa04) at .//db.pl line 89.
0xaa04という文字コードをふくんでいるからだと思われますが、
できるだけEUCのみを追加するようにしています。

動きとしては
ファイルを開く

1行ずつ読み込む

Perlメモのソースを組み込み、
できるだけEUCにし、それでも
EUCじゃなさそうなものは無視する
EUCのものは変数に追加していく

ファイルを読み終わったら、
変数をDBに追加する。

ということをしています。
これで100件に1回くらい上記のエラーがでてしまいます。
どうにかして、避けたいのですが・・・


961 :デフォルトの名無しさん:03/05/15 20:19
>>960
> EUCじゃなさそうなものは無視する
これが不完全なんだろうな。

962 :デフォルトの名無しさん:03/05/15 21:25
こちらは、Active PerlのWin32環境です。

Perlで、特定のディレクトリ以下のファイルをミラーリングして、ファイル
を更新(古いファイルは退避)した時、ファイルを上書きする時などに、
ログに残すスクリプトを書いているのですが、日本語のディレクトリ名
が入るとどうにもうまくいきません。


「〜〜表」みたいな名前のディレクトリがあると、'コードの\'(0x5C)が
ディレクトリの区切りと混同されるらしく、ファイルテスト判断子(-d)で
判定しても、ディレクトリと思って貰えないようです。

この問題を解決する手段をご存知の方、お教えください。

963 :デフォルトの名無しさん:03/05/15 21:27
ちと質問でつ

#!/usr/bin/perl -T
って意味あるの?

964 :デフォルトの名無しさん:03/05/15 21:31
よくわかんないやつはjperl使いなよ

965 :963:03/05/15 21:39
http://www.ipa.go.jp/security/awareness/vendor/programming/a04_03.html

を読んでたのでつが…
結局
[\<\>\"\'\%\;\)\(\&\+\|\$\#]
を置き換えするのだったら -Tイラネって気がするので
聴いてみましたのでつ

966 :デフォルトの名無しさん:03/05/15 22:29
aaggee

967 :デフォルトの名無しさん:03/05/15 23:26
>>962
読んだファイル一覧を、jcodeとかでEUCに変えれば?
半角カタカナは全角に戻して。

968 :デフォルトの名無しさん:03/05/16 00:02
>>967
EUC-JPに直すんなら半カナ→全カナはいらないと思うが。

969 :デフォルトの名無しさん:03/05/16 00:27
>>964>>967
お返事ありがとう。

それやったんですが、やっぱり、ファイルテスト判断子が通らないん
ですよねぇ。ファイルテストって内部的にどういう処理になってるのか?
知らないのですが。どうもそれじゃダメみたいです。

Jperlって手もあるんだけど、今、いろいろモジュールが入っているの
で、あの環境を残しておきたいんですよねぇ…

970 :デフォルトの名無しさん:03/05/16 01:21
jperlは駄目。
次のスクリプトを試してみな。
これで駄目なものが出るようなら、Visual C++のisDirectory関数を使った
ライブラリを必要な人が自分で書くしかないな。
opendir DIR,'.';
@files = readdir DIR;
closedir DIR;
for (@files) {
print $_;
s/\\$/\\\\/g;
print " -> Directory" if (-d) ;
print "\n";
}

971 :デフォルトの名無しさん:03/05/16 01:22
おっと、gは余計だった、スマソ

972 :237:03/05/16 01:34
Windows2003のIIS6でActivePerl5.8でのCGI
動いた人いる?
なんか動かないんだが、、

973 :棄教者 ◆egKIKYO7cg :03/05/16 01:54
誰か五箱目作ってくれ。


974 :デフォルトの名無しさん:03/05/16 03:06
perlって、ソート標準にソート関数がありますよね。
で、ちょっと使いかたを把握してないのですが、以下の処理は可能でしょうか?
また、可能ならばどう記述すれば良いでしょうか?

@aaa;  #整数が複数個入っている。
@bbb;  #整数が複数個入っている。

これをまぜて数字順でソートしたい。@sortの中にいれる。
ただ、数字を入れたいのではなく、「aaa」の文字列か「bbb」の文字列をいれたい。

もうちょっと分かりやすく言うと、
@aaa = (12 , 1);
@bbb = (5, 3);

となっていたとする。

この場合、最大値と最低値の数字をaaaが持っていて、中の二つの数値はbbbが持っているので、結果的に

@sort = ('aaa' , 'bbb' , 'bbb', 'aaa');

となるようにしたい。実際の所は、@aaa、@bbb共に何個数字を持っているか分からず、ダブっている数字もある。(ダブっていても抹消されないようにしたい)
数字は、大きいほうからの順で先頭から代入させたい。

975 :974:03/05/16 03:08
訂正
>perlって、ソート標準にソート関数がありますよね。
perlって標準関数にソートがありますよね。
テンパってました。

976 :bloom:03/05/16 03:13
http://homepage.mac.com/ayaya16/

977 :_:03/05/16 03:27
〜oノハヽo〜                
  ( ^▽^) < こんなのございまーす♪ 
ttp://www.yamazaki.90.kg/hankaku/hankaku04.html
ttp://yamazaki.90.kg/hankaku/hankaku10.html
ttp://www.yamazaki.90.kg/hankaku/hankaku09.html
ttp://yamazaki.90.kg/hankaku/hankaku08.html
ttp://www.yamazaki.90.kg/hankaku/hankaku06.html
ttp://yamazaki.90.kg/hankaku/hankaku05.html
ttp://www.yamazaki.90.kg/hankaku/hankaku01.html
ttp://yamazaki.90.kg/hankaku/hankaku02.html
ttp://www.yamazaki.90.kg/hankaku/hankaku07.html
ttp://yamazaki.90.kg/hankaku/hankaku04.html

978 :974:03/05/16 03:28
すみません。
標準関数を使わないで自分で作り始めたのですが、なんとか自己解決できそうです。
すみませんでした。

979 :デフォルトの名無しさん:03/05/16 06:56
push(@bbb, @aaa);
@sort = sort{ $a <=> $b } @bbb;
でいいのか?


980 :デフォルトの名無しさん:03/05/16 08:00
>>979
それでファイナルアンサー?


981 :974:03/05/16 08:08
>>979
質問者の俺が言うのもなんですが、明らかに違うっす。

記述のほうは自作でループ作って解決しました。
順番に照合していって、@sortにaaaかbbbの文字列を代入させる方法です。


982 :デフォルトの名無しさん:03/05/16 08:35
マージソートじゃ駄目なの?

983 : ◆hMJAPH9PWA :03/05/16 10:24
>>981
@sort = map { $_->[0] }
sort { $a->[1] <=> $b->[1] }
(map { ['aaa', $_] } @aaa),
(map { ['bbb', $_] } @bbb);

984 :デフォルトの名無しさん:03/05/16 10:48
>>982
ソートアルゴリズムを選んでどうなるものではない。
正解は983だろう。


985 :デフォルトの名無しさん:03/05/16 11:30
combsortって速いソートなんですか?

986 :デフォルトの名無しさん:03/05/16 11:48
次スレ用意しました。

Perlについての質問箱 5箱目
http://pc2.2ch.net/test/read.cgi/tech/1053053082/l50


987 :ray:03/05/16 12:25
>>961さん
そうなんです。
これが晩年の問題なんですよね・・・

988 :デフォルトの名無しさん:03/05/16 12:30
>>987
墓石に刻め。

989 :974:03/05/16 13:44
>>983
よ、よく分からんけど。美しい!
え〜と、リファレンスがmapで…?
……ボ〜ン!!

ひ、久しぶりに本開いてみよう…汗
ありがとうございます。
ちゃんと理解してから使わせてもらいます。

990 :デフォルトの名無しさん:03/05/16 14:41
>>969
quotemetaしてみたら?

991 :デフォルトの名無しさん:03/05/16 15:33
>>989
クックブックに解説載ってるよ、シュワルツ変換だったかな
俺も感動した

992 :デフォルトの名無しさん:03/05/16 16:40
むしろEffectivePerlやな。

248 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)