[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 05/09 21:18 / Filesize : 139 KB / Number-of Response : 547
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 16:01:21 BE:176880454-DIA(100004)]

"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、
Perlの奥深さについて皆で語り合い、追求してまいりましょう。

CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
( WEBプログラミング板 pc11.2ch.net/php/ )

CGIの質問は答えが Perlと全然関係ない話に帰着する場合が
多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。

www.perl.org/get.html
● 2008/04/20 現在の最新版: 5.10.0
● 2008/04/20 現在の開発版: 5.9.5

▼ 前スレ
Perlについての質問箱 34箱目
pc11.2ch.net/test/read.cgi/tech/1199977642/


47 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 21:57:54 ]
>>43
CGI::Ex::Fill::form_fill($html, $query);
じゃダメなのか?

48 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 22:05:40 ]
>>46
上にも書いている通り、ファイルを置いて use しているだけなので
インストールしてないというのは、その通りだと思います。
>>43に書いた通りには読み込み処理を書いているので
まさにそれで読み込めない理由が知りたいです。

>>47
ダメでした。同様に
  Undefined subroutine &CGI::Ex::Fill::form_fill
となりました。

49 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 22:13:44 ]
use libはインクルードパスを変えるだけだぞ…

50 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 22:21:09 ]
置いたファイルを use していない、のだ。

51 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 22:42:16 ]
>>49-50
なるほど! わかりました。
use lib でパスを通した後で、
改めて use CGI::Ex::Fill qw(form_fill fill); を行う必要があったんですね。
Fill.pm の置き場所を ./lib/CGI/Ex/Fill.pm に変更し、use したところ
まだ値は復帰しませんが、とにかく form_fill は通るようになりました。
ありがとうございました。

52 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 23:52:55 ]
インストールすりゃいいだろ!!

53 名前:デフォルトの名無しさん [2008/04/28(月) 03:02:57 ]
    ∩___∩   /)
    | ノ      ヽ  ( i )))
   /  ●   ● | / /
   |    ( _●_)  |ノ / コイツ最高のアホ!
  彡、   |∪|    ,/
  /__  ヽノ   /´
 (___)     /

54 名前:デフォルトの名無しさん [2008/05/01(木) 00:19:43 ]
    ∩___∩   /)
    | ノ      ヽ  ( i )))
   /  ● ●   | / /
   |    ( _●_)  |ノ / コイツ最高のアホ!
  彡、   |∪|    ,/
  /__  ヽノ   /´
 (___)     /

55 名前:デフォルトの名無しさん [2008/05/01(木) 02:11:38 ]
Template Toolkit の質問でも良いですか?

Template Toolkit でファイルの存在判定ってできるんでしょうか?
例えばあるテンプレート内で
[% INCLUDE hoge.tt %]
を使って異なるディレクトリにあるファイルを include させたいのですが、
実際に hoge.tt が存在しない時は、"file not found"にて処理が失敗しています。

今作ってる仕組み上、hoge.tt は時と場合に応じて有ったり無かったりするので、
ファイルが無いときは、include させない制御をテンプレートのみで実装したいのです。

お願いします。



56 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 07:35:17 ]
>>55
ここの「例外処理、フロー制御」の項読めば?
ttp://www.hakoniwa.net/tt/

57 名前:デフォルトの名無しさん [2008/05/01(木) 13:12:30 ]
>56
ありがとうございます。
まさにそのままでしたね。

どんだけ視野狭いんだ俺。

58 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 03:25:33 ]
perlからvb.net で作成したクラスライブラリにアクセスはできないのでしょうか?
例えばperlから、
homepage1.nifty.com/rucio/main/dotnet/shokyu/standard51.htm
のサンプルで作成したMyLibrary.dllの関数の"Add","Total"等を
使用する場合、次のような書き方では、Died となってしまいます。
どなたかご教授お願いします。

use Win32::API;
$Add = new Win32::API( "MyLibrary.dll", "Add", [N], "N") || die;
$Total = new Win32::API( "MyLibrary.dll", "Total", [], "N") || die;

<結果>
Died at D:\work\DLL_Access.pl line 27, <DATA> line 164.



59 名前:デフォルトの名無しさん [2008/05/02(金) 14:16:23 ]
Perl で LWPを使用したとき(activePerl) HTTP/1.1 を使用しちゃうんですが
HTTP/1.0 で通信したい場合どう指定すればいいか分かりますか?

60 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:07:41 ]
>>59
環境変数PERL_LWP_USE_HTTP_10をセットする。

61 名前:デフォルトの名無しさん [2008/05/05(月) 12:28:42 ]
CGI掲示板を自作していますが、書き込み送信メールのSendmailによる送信処理でつまづきました。

以下のように記述すると、管理人である自分には登録メールが送られますが、
管理人以外に、書き込みした人にも登録確認メールが送られるようにしたいんです。

#Sendmailによる送信処理
if (open(MAIL,"| $sendmail -t")){
print MAIL "X-Mailer:legend2\n";
print MAIL "To: $administrator\n";
print MAIL "Errors-To: $administrator\n";
print MAIL "From: $administrator\n";
print MAIL "Subject: $subject\n";
print MAIL "MIME-Version: 1.0\n";
print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";
print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL "$mail_comment\n";
print MAIL "\n";
close(MAIL);
}
}

以下のどれかを使うのでしょうか?

print SENDMAIL "From: $sender <$from>\n";
print SENDMAIL "To: $to\n";
print SENDMAIL "Cc: $cc\n";
print SENDMAIL "Bcc: $bcc\n";


どうすれば良いか御教授下さい。宜しくお願いします。


62 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 13:30:13 ]
>>61
>>1

63 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 12:23:32 ]
>>62
知らないなら出しゃばるなよ

64 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 13:31:21 ]
>>63
>>1

65 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 13:36:14 BE:212257038-DIA(100004)]
sendmail のスレ行けよ
純粋な Perl の質問なら
標準モジュールの
Net::SMTP 使って質問しろ



66 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 13:49:56 ]
既にwebprogに移動したようですよ。

67 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 14:41:58 ]
こういう赤ん坊のムニャムニャみたいな質問に良く答えられるなあ。
webprogはエスパーが多いのか。

68 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 15:51:47 ]
あっちは隔離施設なので訓練をつんだ回答官が配備されてます

69 名前:デフォルトの名無しさん [2008/05/06(火) 16:00:05 ]
こっちのスレは素人なので、答えられない質問が来ると他所へ追いやります。

70 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 16:01:24 ]
>>69
> こっちのスレは素人なので、答えられない質問が来ると他所へ追いやります。

その通りなので、最初からあちらへ行ってください。

71 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 16:29:08 ]
訓練を積んだ回答官が配備されてるんじゃなくて

「&jcode'convert(*value, 'sjis', 'euc') の *value って何ですか?」
「&ReadParse(*in) の *in って何ですか?」
「open() or &error("読み込みエラー") で読み込みエラーが表示されて困っています」
「エラーメッセージは 500 Internal Server Error です」

任務が厳しくて鍛えられてしまうんです。

72 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 18:18:54 ]
激務だな。

それはそうと、未だにjcode.plつかってるのが出回ってるのかね。

73 名前:デフォルトの名無しさん [2008/05/06(火) 18:28:12 ]
use Jcode や use utf8 がクソだから jcode.pl から乗り換える気にもなれない。
わざわざ労力をかけてコードを書き直す価値が無いんだよ。
過去の古い資産をそのまま使うのでじゅうぶん。

74 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:26:17 ]
最近グロブ使って書かれてるスクリプトに触ってないから
グロブはあまり使わなくなっちまったなあ。

75 名前:デフォルトの名無しさん [2008/05/06(火) 22:59:14 ]
しょこたんブログも飽きたな



76 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 11:44:34 ]
Perl/tkで書いたものをWin32exe形式にするにはどうしたらいいんでしょうか?


77 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 20:09:07 ]
perl2exe

78 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 06:57:50 ]
UNIX環境でコマンドラインからスクリプト動かしたとき、
動かしたユーザーのidを取得するにはどうしたらいい?
スクリプトの使用制限をはかりたい。

79 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 08:26:58 ]
>>78
$<
manくらい嫁。

80 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 13:05:01 ]
>>78
コピーされて無効化されるぞ。


81 名前:デフォルトの名無しさん [2008/05/08(木) 20:53:48 ]
教えてください。

テキストファイルの中から、
hoge
を含む行を検索して、
その行をprintしたいのですけど、
一行一行読み込んで、パターンマッチして、真であれば、printする、
という方法以外に、何か方法ありますか?
(perlはテキスト処理が得意と訊いたのですが、『一行一行読み込んで』のステップがプログラムで必要か気になりました。)

ところで、cygwinでperlをはじめたのですが、何か気をつけることはありますか?

82 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 20:54:34 ]
hogeを見つけたら前後の改行を探し出すとか。
全く意味ないけど。

83 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 21:51:51 ]
>>81
perl -ne '/パターン/ && print' <file

84 名前:81 mailto:sage [2008/05/08(木) 22:37:56 ]
レスありがとうございます。
さっぱりわからないので、教わったことをキーワードに調べてみます。

また、御願いします。

85 名前:デフォルトの名無しさん [2008/05/09(金) 16:18:45 ]
>>81
そういう事のためにあるのが、grep



86 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:25:10 ]
まあ正規表現なんだけどな !

87 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:32:04 ]
grepやsedを素っ飛ばしてperlから始めたのかな。一行野郎
なんて知らないんじゃないのかな。

88 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 14:33:02 ]
目的:perlTk で GUI のテキスト検索ツールを作成しています。

状況:ユーザから入力された検索文字列の正規表現が不正であると、プログラムが
終了してします。 (invalid regular expression at * )

$search_string に格納された文字列が正規表現として有効であるかを、
eval を使って事前に評価したいのですが、どうしたら良いのでしょう?

if (eval (m/$search_string/)) ?  これだと常に true が帰ってしまいます。
エロい人、教えてください。

89 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 14:49:04 ]
困ったときのクックブック
6.11 パターンが有効かどうか検証する

90 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 15:12:19 ]
qx

91 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 15:52:18 ]
>>88
エロイ人への質問はvenus.bbspink.com/hneta/でしなさい。

92 名前:88 mailto:sage [2008/05/10(土) 16:16:44 ]
>>89
ありがとう。正規表現の箇所は全部呼んだつもりだったのに。。。

解法(p.254):

eval { ""=~ /$search_string/ };
warn "パターンが無効 $@" if $@;

>>91
性器表現に困ったときはそうします。ありがとうございました。

93 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 19:00:21 ]
Win32::OLEを使って wordドキュメントの編集をしようとしています。
読み出しはできるのですが、テキスト編集を受け付けてくれません。

下記のようなソースで、「ABC」→「abc」としたいのですが、元の「abc」のまま出力されてしまいます。
どのようにしたらよいでしょうか?
WindowsXP SP2上で、ActivePerl 5.10と、5.8.8で試してみました。

-------------------
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Word';

$word = Win32::OLE->GetActiveObject('Word.Application') || Win32::OLE->new('Word.Application', 'Quit') || die;
$doc = $word->Documents->Open( 'test.doc' ) || die;
$paras = $doc->Paragraphs;

foreach (in $paras){
 $_->Range->{'Text'} =~ tr/A-Z/a-z/;
 print $_->Range->{'Text'}."\n";
}

$doc->Close( 0 );
-------------------


94 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:36:57 ]
URL転送なんだけど今こうしてます↓

#!/usr/bin/perl
print "Location: *****\n\n";

これに転送するまでHTMLの<meta content="x">みたいに
一定時間ウェイトかける事って出来るのでしょうか?







95 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 22:55:03 ]
いいえ



96 名前:デフォルトの名無しさん mailto:sage [2008/05/10(土) 23:04:42 ]
>>94
>>1

97 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 02:50:29 ]
>>94
できなくはないがやるな。
それと>>1

98 名前:デフォルトの名無しさん [2008/05/11(日) 12:59:18 ]
教えて先生!
01 や 11 などの文字列を数値に変換するにはどうすればいいの?

99 名前:98 mailto:sage [2008/05/11(日) 13:26:41 ]
自己解決っす
他のスクリプト同様 -0 でよかったのかw

100 名前:デフォルトの名無しさん mailto:sage [2008/05/11(日) 14:17:20 ]
intでいいよ

101 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 21:23:54 ]
モジュールでモジュールのファイル位置を知るにはどうしたらいいでしょうか?
|-foo.pm
|-data/data1
こんな感じのフォルダ構造になってて、foo.pmの中からdata1を相対参照したいのです。


102 名前:デフォルトの名無しさん [2008/05/12(月) 21:31:33 ]
あとcgiとして使う場合。cgiが呼ばれる度毎回dataファイルを読み込むのは処理が重くなると思うんですよ。
最初の一回だけ読み込む方法とかありませんか?

103 名前:デフォルトの名無しさん [2008/05/12(月) 22:57:05 ]
mod_perl

104 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 23:35:05 ]
fastcgi

105 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 00:00:09 ]
>>103 >>104
有難うございました。fastcgiを調べてみます。



106 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 00:14:04 ]
>>105
Speedy-CGI

107 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 00:18:38 ]
perlはインタプリタだから、見下すべき言語なんだろ?

108 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 00:36:37 ]
perlはコンパイラつんでます。

109 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 00:37:57 ]
所詮JIT

110 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 13:52:10 ]
質問です。

package number;
sub get_codeNumber(){
my $number = 1;
if ($number > 0){
print "0より大です。";
}else{
print "0以下です。";
}
}
このplをローカルで実行しても何もコンソールに表示されません。
これをコンソールに表示するには、どうしたらよいのでしょうか。教えて下さい。

111 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 13:56:45 ]
>>110
そんな断片だけ書かれていては釣りだとしか思えない

112 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 14:03:43 ]
>>111
サブルーチンの中身をデバッグしたいのです。

113 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 14:13:19 ]
>>112
問題がサブルーチン内にあるとわかっているのですか?

114 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 14:20:44 ]
>>113
いいえ。perlの仕事がはじめてなのですが、
渡されたサブルーチンが仕様通りに動いているかを自分で確認したくて書き込みました。

Javaでいうと、
public class hoge1{
System.out.println("0より大です。");
}
public class hoge2{
System.out.println("0以下です。");
}
のような確認をしたかったのですが、おかしいでしょうか。


115 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 14:24:25 ]
呼べ



116 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 14:30:44 ]
>>114
ごめん,俺に理解力がないせいか何をしたいのかがよくわからない.
もうちょっと詳しく説明してくれたら助かるんだが.

117 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 14:42:28 ]
もうちょっと実際のplに近いものを書いてみます。
お待ち下さい。

118 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 14:42:50 ]
package number;
#sub get_codeNumber(){
my $number = 1;
if ($number > 0){
print "0より大です。";
}else{
print "0以下です。";
}
#}

119 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 14:55:04 ]
>>118
単純に改行が入ってないからとか
stdout が flush されてないからとか
じゃないよね?


120 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 14:58:48 ]
ちゃんと実行されてるかどうかがあやしいような

121 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 15:05:45 ]
#torikomi.pl

package torikomi;

#戻り値:String(分類コード)

sub get_code(){
    ($organizationcode,$sectioncode,$itemcode) = @_;
    
    $itemcode = "999999";
    
    my $i1cd       ="";
    my $i2cd       ="";
    my $i4cd       ="";
    
    $i1cd=substr($itemcode,0,1);
    $i2cd=substr($itemcode,0,2);
    $i4cd=substr($itemcode,0,4);
    
    
    if($itemcode eq "000000"){ 
        return "A00";
    }
    if( $itemcode eq "999999" ){
        return "Z00";
    }
}

このperlが、きちんとA00やZ00を返しているかを確認したいのです。

122 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 15:11:54 ]
「サブルーチンの中」を詳細に書けっていうんじゃなくて、
それを呼び出す側とか、実行している環境とかの詳細を書けって話だと思うよ。

123 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 15:37:02 ]
あー、呼び出す側や実行環境のソースはもらっていません。

124 名前:デフォルトの名無しさん [2008/05/13(火) 17:03:19 ]
質問です。
1つのデータを複数に分割して、それぞれをgnuplotで
表示しようとしているのですが、実行すると

gnuplot> 'plot './X1.txt' using 1:2 w l 1'
      ^
line 0: invalid command

という風なエラーが分割したデータ全てに対して出ます。
(X1.txtというのが分割したデータの1つです。)
分割まではうまくいっているので、gnuplotの部分で問題があると思うのですが、
わかる方がいましたらよろしくお願いします。
gnuplotの部分のプログラムは以下のような感じです。

for( $j = 0 ; $j < 10 ; $j++ ){
open ( GP "| gnuplot -persist" )
or die "no gnuplot";
print GP "set term postscript color 20\n" ;
print GP "set output './X1.eps\n'" ;
print GP "plot './X1.txt' using 1:2 w l 1\n" ;
close GP;
}

125 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 17:08:42 ]
>>124
スレ違いだが、、、
w l 1 の「1」って何だ? そんなのあったっけ?





126 名前:124 [2008/05/13(火) 17:14:59 ]
>>125
スレ違いで申し訳ありません。
perlでプログラム書いてたんで、perlのスレで質問した方がいいかなと・・・

「1」はlineの色ですのであまり気にされなくても大丈夫です。


127 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 17:20:15 ]
>>125
色だか線種だかを1に指定ってことだったはず.

>>124
gnuplotに流してるコマンドの最初と最後にいらないシングルクオートが入ってるせいじゃないかな?
このコピーでは問題なさそうだけど,ソースのprint文を確認してみたらいいと思う.

128 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 19:57:39 ]
' なんてコマンドはねえよ、って言ってるだけじゃねえの?

129 名前:124 [2008/05/13(火) 23:28:23 ]
124です。
124で書いたプログラムの間違いに気づきました。
プログラム中の「X1」は「X${j}」でした。
じゃないと、for文の意味ないですもんね。。。
あと、今自分で間違いに気づきました。
print GP "set output './X1.eps\n'"
じゃなくて、
print GP "set output './X1.eps'\n"
でしたorz
こんな簡単なミスに気づかないとは。。。
大変ご迷惑おかけしました。


130 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 00:54:44 ]
>>121
>このperlが、きちんとA00やZ00を返しているかを確認したいのです。
Test::Base使えば良いじゃん。

131 名前:デフォルトの名無しさん [2008/05/14(水) 02:52:29 ]
asciiコードを16進数に変換するにはどうしたらいいでしょうか?
printf "%x","a"
こんなことやっても上手くいきません
61と表示させたいです

132 名前:デフォルトの名無しさん [2008/05/14(水) 03:04:43 ]
www2u.biglobe.ne.jp/~MAS/perl/waza/asc2chr.html
これみたら分かりました

133 名前:デフォルトの名無しさん [2008/05/14(水) 03:21:56 ]
grepでデータ中から目的の行を検索したいのですが
grep(/$foo/i, @ary);
・ignore caseは使いたい
・$fooは「+」などのデータが含まれており、そのままgrepすると正規表現と解釈されてエラーになる
・正規表現はつかわない
何かよい方法はないでしょうか?


134 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 03:32:47 ]
>>133
quote (disable) pattern metacharactersの出番

135 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 03:35:23 ]
ありゃッ、先頭が抜けた。

>>133
\Q quote (disable) pattern metacharactersの出番



136 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 04:14:43 ]
>>134
grep(/\Q$foo\E/i, @ary);
でいけました。ありがとうございます

137 名前:110 mailto:sage [2008/05/14(水) 15:58:33 ]
メインルーチンとの結合でうまくいきました。
相談に乗ってくれた方、ありがとうございました。

138 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 23:04:47 ]
Windows環境で、ディレクトリ一覧を取得、正規化してリネームしたくて
いろいろやってるんだが、shift-jisの文字の扱いに苦労してる
ひょっとしてPerlでやるのあんま向いてなかったりする?

139 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 23:14:21 ]
Unicodeであつかえばいいだろ。

140 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 19:33:10 ]
あまりPERLの構文詳しくないので誰か教えてください
こんなのを作ってみたのですが
sub cont{print "contents\n";}
sub html{print "<html>\n"; $_[0](); print "</html>\n";}
sub body{print "<body>\n"; $_[0](); print "</body>\n";}
body(\&cont);
html(\&cont);
これを、出力が<html><body>cont</body></html>となるように
呼び出したいのですが可能でしょうか
↓動かないですが、こんな感じのことがやりたいです
1. html(\(body(\&cont));
2. sub f{html(\&&_[0]);} f(\&html);
3. sub g{$f=shift; html(\&f);} g(\&html);

141 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 19:43:23 ]
>>140
こういうことか?

sub cont { print "contents\n"; }
sub html { print "<html>\n"; shift->(); print "</html>\n";}
sub body { print "<body>\n"; shift->(); print "</body>\n";}
html(sub { body(\&cont) } );

142 名前:140 mailto:sage [2008/05/15(木) 19:58:14 ]
おお、想定通り動きました。ありがとう。

143 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 20:19:38 ]
use strict;
use warnings;
sub binding{ my($F,@P)=@_;sub{$F->(@P)} }
sub cont {print "contents\n";}
sub html {print "<html>\n"; shift->(); print "</html>\n";}
sub body {print "<body>\n"; shift->(); print "</body>\n";}
sub cont2 {return "contents\n";}
sub html2 {return "<html>\n",shift->(),"</html>\n";}
sub body2 {return "<body>\n",shift->(),"</body>\n";}


html( binding( \&body => \&cont ) );
print html2( binding( \&body2 => \&cont2 ) );


144 名前:デフォルトの名無しさん [2008/05/15(木) 20:21:07 ]
windows上のperlのGDモジュールで、
日本語フォントをjpg画像で出すサンプルってありませんか。
下のサンプルをmsgothic.ttcに変えて実行したら、
どうやっても・という文字になってしまいます。
x68000.q-e-d.net/~68user/webcgi/image-1.html


145 名前:140 mailto:sage [2008/05/15(木) 20:41:48 ]
>>143
このbindingってやつナイスですね
これ参考に、1タグ多要素に拡張してみます




146 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 21:51:34 ]
>>144
PerlMagickでできるかも。
まー、内部はGDかもしれないから、同じ結果かも知れない。


147 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 22:05:34 ]
>>144
よくわからんが、文字コードの問題とか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<139KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef