Perlコーディング初心者質問スレ Part 45
■ このスレッドは過去ログ倉庫に格納されています
0001988
2005/12/08(木) 22:48:27ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
0002988
2005/12/08(木) 22:49:46ID:???CGI: Common Gateway Interface part 13
http://pc8.2ch.net/test/read.cgi/php/1126436361/
【Perl,CGI】参考書籍 第三版
http://pc8.2ch.net/test/read.cgi/php/1030209573/
【Perl】ファイルロック(排他処理)について語ろう
http://pc8.2ch.net/test/read.cgi/php/1024795138/
★負荷軽減対策委員会(Perl、PHP)★
http://pc8.2ch.net/test/read.cgi/php/1034645635/
Perlモジュールについて
http://pc8.2ch.net/test/read.cgi/php/997829243/
CGIに依存しないPerlの話題一般/Part2
http://pc8.2ch.net/test/read.cgi/php/1030548610/
★三 【 スクリプト改造工房 PART 8 】 ★三
http://pc8.2ch.net/test/read.cgi/php/1077525387/
【 スクリプト改造依頼スレ 】(丸投げ) part4
http://pc8.2ch.net/test/read.cgi/php/1127916965/
0003988
2005/12/08(木) 22:50:11ID:???Part1 http://tako.2ch.net/test/read.cgi?bbs=perl&key=957208980 参照不能
DAT: http://tako.2ch.net/perl/dat/957208980.dat
Part2 http://tako.2ch.net/test/read.cgi?bbs=perl&key=971817087 参照不能
DAT: http://tako.2ch.net/perl/dat/971817087.dat
Part3 http://tako.2ch.net/test/read.cgi?bbs=perl&key=979894521 参照不能
DAT: http://tako.2ch.net/perl/dat/979894521.dat
Part4 http://tako.2ch.net/test/read.cgi?bbs=perl&key=984430156 参照不能
DAT: http://tako.2ch.net/perl/dat/979894521.dat
Part5 http://pc.2ch.net/php/kako/988/988728069.html
Part6 http://pc.2ch.net/php/kako/996/996075607.html
Part7 http://pc.2ch.net/php/kako/1000/10002/1000267444.html
Part8 http://pc.2ch.net/php/kako/1003/10039/1003900311.html
Part9 http://pc.2ch.net/php/kako/1009/10095/1009549309.html
Part10 http://pc.2ch.net/php/kako/1014/10145/1014556702.html
0004988
2005/12/08(木) 22:50:34ID:???Part11 http://pc.2ch.net/php/kako/1017/10172/1017201229.html
Part12 http://pc.2ch.net/php/kako/1019/10199/1019917048.html
Part13 http://pc.2ch.net/php/kako/1022/10227/1022731565.html
Part14 http://pc.2ch.net/php/kako/1026/10269/1026977659.html
Part15 http://pc.2ch.net/php/kako/1028/10288/1028816385.html
Part16 http://pc.2ch.net/php/kako/1032/10320/1032070299.html
part17 http://pc.2ch.net/php/kako/1034/10345/1034583844.html
part18 http://pc.2ch.net/php/kako/1037/10377/1037797479.html
part19 http://pc.2ch.net/php/kako/1042/10422/1042260745.html
part20 http://pc2.2ch.net/php/kako/1044/10447/1044717887.html (タイトルに19と誤記)
0005988
2005/12/08(木) 22:51:00ID:???part21 http://pc2.2ch.net/php/kako/1047/10479/1047980851.html
part22 http://pc2.2ch.net/php/kako/1050/10503/1050369328.html
part23 http://pc2.2ch.net/php/kako/1053/10530/1053051519.html
part24 http://pc2.2ch.net/php/kako/1054/10549/1054992610.html
part25 http://pc2.2ch.net/php/kako/1056/10567/1056730690.html
part26 http://pc5.2ch.net/php/kako/1059/10590/1059043704.html
part27 http://pc5.2ch.net/php/kako/1060/10608/1060808783.html
part28 http://pc5.2ch.net/php/kako/1063/10635/1063562491.html
part29 http://pc5.2ch.net/php/kako/1066/10662/1066286828.html
part30 http://pc5.2ch.net/test/read.cgi/php/1069846177/
0006988
2005/12/08(木) 22:51:24ID:???part31 http://pc5.2ch.net/test/read.cgi/php/1072896288/
part32 http://pc5.2ch.net/test/read.cgi/php/1075545279/ (タイトルに31と誤記)
part33 http://pc5.2ch.net/test/read.cgi/php/1078076768/
part34 http://pc5.2ch.net/test/read.cgi/php/1081148490/
part35 http://pc5.2ch.net/test/read.cgi/php/1085557731/
part36 http://pc5.2ch.net/test/read.cgi/php/1089779036/
part37 http://pc5.2ch.net/test/read.cgi/php/1093106507/
part38 http://pc5.2ch.net/test/read.cgi/php/1097158988/
part39 http://pc5.2ch.net/test/read.cgi/php/1101522903/
part40 http://pc5.2ch.net/test/read.cgi/php/1106816922/
part41 http://pc8.2ch.net/test/read.cgi/php/1110383236/
part42 http://pc8.2ch.net/test/read.cgi/php/1116970588/
part43 http://pc8.2ch.net/test/read.cgi/php/1123777607/ (前スレ)
0007988
2005/12/08(木) 22:53:25ID:???[プログラミング自体の経験が無い奴はまずココを読め]
Perlプログラミング講座: http://www.site-cooler.com/kwl/perl/
[本]
リャマ: http://www.oreilly.co.jp/books/4873111269/
駱駝: http://www.oreilly.co.jp/books/4873110963/
Effective Perl: http://www.ascii.co.jp/books/detail/4-7561/4-7561-3057-7.html
クックブック: http://www.oreilly.co.jp/books/4873112028/
[オンラインマニュアル] (追加)
最新のドキュメント: http://search.cpan.org/~nwclark/perl-5.8.7/
perl5.8.xのドキュメント(一部): http://www.kt.rim.or.jp/~kbk/perl-5.8/
perl5.005_03 のドキュメント: http://www.kt.rim.or.jp/~kbk/perl5.005/
日本語ドキュメント検索: http://www.cpan.jp/search.cgi
perldoc.jp: http://www.perldoc.jp/
Perldoc.com: http://www.perldoc.com/
0008988
2005/12/08(木) 22:54:09ID:???[モジュール]
CPAN.com: http://search.cpan.org/
河馬屋二千年堂: http://homepage3.nifty.com/hippo2000/
[テクニック]
Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm
Perlのページ: http://homepage1.nifty.com/nomenclator/perl/
Perlの小技: http://homepage3.nifty.com/hippo2000/perltips/index.htm
[Perl5.8Unicodeメモ]
http://www.pure.ne.jp/~learner/program/Perl_unicode.html
http://www.namazu.org/~tsuchiya/perl/perl-5.8.html
http://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
関連スレ
正規表現道場@2ch Part4
http://pc8.2ch.net/test/read.cgi/php/1105930285/
0009988
2005/12/08(木) 22:54:50ID:???0011nobodyさん
2005/12/09(金) 01:22:40ID:TPUe6z63ActivePerl 5.8.7でTk使ってます。
処理のなかではTkの表示の部分でdecode('cp932',$hoge);としています。
Textヴィジットにユーザーに文字を入力してもらいそれを$txt->getを使って取得した場合、
取得した値のエンコードは何になっていますか?どう扱えばいいですか?
どのshiftjisやutfとか指定してもバグってしまい、何をどうしたらいいのやら・・・
0012nobodyさん
2005/12/09(金) 02:32:35ID:???当てずっぽうで試さず、受け取った文字列の16進ダンプでも
吐かせりゃすぐ分かると思うんだが。
別解: http://www.kt.rim.or.jp/~kbk/perl-5.8/guess.html
0013nobodyさん
2005/12/09(金) 11:55:02ID:???open (F,">list.html");
print F "Content-type: text/html\n\n";
print F "<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>\n";
print F "<head><META http-equiv=Content-Type content=text/html; charset=Shift_JIS><title>aaaaa</title></head>\n";
print F "<body>\n";
print F "<div align=center>\n";
print F "</div>\n";
print F "</body>\n";
print F "</html>\n";
close (F);
とするとうまくいくのですが、
open (F,">/list/list.html");
にするとファイルに書き込んでくれません。パーミッションは両方のlist.htmlともに666です。
どなたかアドバイスお願いします。
/
|
+-- cgi-bin / aaaaaa / aaaaa.cgi
| list.html
|
+-- list / list.html
0014nobodyさん
2005/12/09(金) 12:02:07ID:???ドキュメントルートとサーバールートがあります。
0016nobodyさん
2005/12/09(金) 15:38:16ID:???0017nobodyさん
2005/12/09(金) 15:41:16ID:aD6KYfo9の方がなんとなくわかりやすいな。
チェンジルートしてると必ずしもファイルシステムルートではないのか・・
0019nobodyさん
2005/12/10(土) 00:23:57ID:jGywlXJC数値や文字列用の比較演算子を使うのは何か違いそうな気がしたので。。
0020nobodyさん
2005/12/10(土) 00:30:39ID:???eq
0023nobodyさん
2005/12/10(土) 17:51:34ID:I7IfvFhxぜんっぜん違う
0024nobodyさん
2005/12/10(土) 20:09:08ID:VtAwQeXl<form>〜</form>の間にある<input name="なんとか" value="なんとか">からnameとvalueを抜き出して、
<a href="アドレス?なんとか=なんとか&なんとか=なんとか">ああああ</a>
というリンクを書きくわえたいんですが、さっぱりわかりません。
下のは試してみたソースですが、動きません。
どうすればいいのか、だれか教えてください。
(下のは無視してください)
while ($hoge=~m/((?:<form>)?.*?<form[^>]*?action=('|")?(.*?)(?:\2| )?.*?>.*?<\/form)/is){
$tmp='';$form=$form2=$1;$action=$3;
$form2=~s/(<input[^>]*?name=('|")?(?!submit)(.*?)(?:\2| )?[^>]*?value=('|")?(.*?)(?:\4| )?.*?>)/
($tmp) ? ($tmp.="&".$3."=".$5) : ($tmp=$3."=".$5);$1;/esgi;
$form2=~s/(<\/\s*?form>)/$1<br><a href="$action$tmp">ああああ<\/a>/i;
572 $hoge=~s/$form/$form2/si;
573 }
0025nobodyさん
2005/12/10(土) 20:13:07ID:???すみません
0026nobodyさん
2005/12/10(土) 22:18:36ID:???これで合ってるのか分からんけど。
my $attr = qr/(?:"[^"]+"|'[^']+'|\S+)/;
$hoge =~ s{<form\b([^>]*)>(.*?)</form>} {
my $form = $2;
my $path = $1 =~ /\saction=($attr)/i ? $1 : '/path/to/default';
$path =~ s/^["']|["']\z//g;
my $param = '';
while ($form =~ m|<input ([^>]*?)/?>|gi) {
my($attrs, %attr) = ($1);
($attr{lc $1} = $2) =~ s/^["']|["']\z//g
while $attrs =~ /\s(name|type|value)=($attr)/gi;
($attr{'type'} ||= 'text') =~ /^(?:text|password|checkbox|hidden)\z/i
and $param .= "$attr{'name'}=$attr{'value'};";
}
length $param ? qq|<a href="$path?$param">ああああ</a><br>| : '';
}egis;
以後この手の依頼はこちらへ。
■こんなCGI作ってください■ Part.2
http://pc8.2ch.net/test/read.cgi/php/1133361560/
0029nobodyさん
2005/12/11(日) 14:07:18ID:???0030nobodyさん
2005/12/11(日) 22:24:54ID:Ihn+hQ6U$ua = $ENV{'USER_AGENT'};
@ua = (
'Mozilla','Netscape','Opera','Firefox');
$uaa = @ua;
(ここの処理がわかりません)
USER_AGENTの中に@uaの配列の中のどれかが含まれてたら真、含まれてなかったら偽を返す
if (真のとき)
{
print "あああ";
}
elseif {
print "いいい";
}
0031nobodyさん
2005/12/11(日) 22:45:42ID:???(Here's one way to do it)
if (grep {/$ua/} @ua) {
print "あああ";
} else {
print "いいい";
}
0032nobodyさん
2005/12/11(日) 22:46:14ID:???if($_ eq $ua){
$flag = "1";
last;
}
}
if($flag){
print "あああ";
}else{
print "いいい";
}
0033nobodyさん
2005/12/11(日) 22:51:40ID:???0034未承諾広告※ ◆TWARamEjuA
NGNGprint eval {
for ('Mozilla','Netscape','Opera','Firefox'){
return 'あああ' if /$ua/;
}
return 'いいい'
}
0035未承諾広告※ ◆TWARamEjuA
NGNG0036nobodyさん
2005/12/11(日) 22:54:05ID:???0037nobodyさん
2005/12/11(日) 23:00:30ID:???0038nobodyさん
2005/12/11(日) 23:04:13ID:???http://www.kt.rim.or.jp/~kbk/perl-5.8/perlfaq4.html#how_can_i_tell_whether_a_certain_element_is_contained_in_a_list_or_array
しかし本当にやりたい事は恐らくこうだろう。
my $match = 0;
for (@ua) { $ua =~ /$_/ and $match = 1, last }
if ($match) { ... } else { ... }
>>36
http://www.kt.rim.or.jp/~kbk/perl-5.8/perlfaq4.html#how_can_i_count_the_number_of_occurrences_of_a_substring_within_a_string
0039nobodyさん
2005/12/11(日) 23:08:36ID:???HTTP_USER_AGENT
0040nobodyさん
2005/12/11(日) 23:26:41ID:???004130
2005/12/11(日) 23:41:51ID:???HTTP_USER_AGENTの中にかっこが含まれていると真にならないみたいなんです(Mozzila=○、Mozzila 4.0(compatible...)=×)
どうすればよいのでしょうか?(;_;)
0043nobodyさん
2005/12/12(月) 00:00:05ID:???つ「quotemeta」
0044nobodyさん
2005/12/12(月) 00:28:56ID:???grep{ /\Q$ua\E/ } @ua;
これで実装しても、
$ua = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)';
こうなら、
grep { m{\QMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\E} } @ua;
これはマッチしないっしょ。
0045nobodyさん
2005/12/12(月) 09:57:35ID:???こうしないとな。
0046nobodyさん
2005/12/12(月) 19:58:15ID:BQNUAhRM表示するとき、フィルタリングすべき文字は
「&、<、>」とかありますが、それ以外に
フィルタリングが必要な文字はどんなものがありますかね
0047nobodyさん
2005/12/12(月) 20:06:34ID:???http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2004-48,GGLD:ja&q=perl+%E3%82%B5%E3%83%8B%E3%82%BF%E3%82%A4%E3%82%BA
0048nobodyさん
2005/12/12(月) 20:15:06ID:???0049nobodyさん
2005/12/12(月) 20:16:30ID:???危ない文字を潰すのではなく安全な文字列だけ取り出すのが基本。
http://www.ipa.go.jp/security/awareness/vendor/programming/a04.html
0050nobodyさん
2005/12/12(月) 20:24:48ID:???SJISでないコードを送りつけたのかどうやったのかは知らないけど。
0051nobodyさん
2005/12/12(月) 21:07:50ID:???Shift_JISの上位1バイトだけを送っても、そのまま表示されていた。
この状態では、次の1バイト分の文字は漢字の下位1バイトとして扱われる。
ここにタグの"<"や">"があるとタグが壊れる。
0052nobodyさん
2005/12/12(月) 21:32:13ID:???0053nobodyさん
2005/12/12(月) 22:25:19ID:???栄ttp://www.yahoo.co.jp/
とか入力すると化けちゃったりとか、結構ある。
0054nobodyさん
2005/12/12(月) 22:26:18ID:???0055nobodyさん
2005/12/12(月) 22:34:31ID:???0056nobodyさん
2005/12/12(月) 22:37:40ID:???一つは通信されるデータ量についてなのですが、
printで表示させたhtml分だけ通信されると考えていいのでしょうか?
つまりCGI内の変数に大量の文字列が入っていてもprintされなければ
通信されないのかということをお聞きしたいのです。
何故こんなことを聞くかというと携帯用に作っているのでパケット代が気になるからなのです。
もしCGI内のソース全てにパケット代が生じるのであれば、データは別ファイルにまとめようと思っています。
サーバーで動くCGIであると考えればhtml分だけだと思うのですが不安です。
もう一つあります。CGIは特別な処理をしなくてもダウンロードされる心配はないと考えていいのでしょうか。
つまり第三者にダウンロードされてソースが見られることがあるのか気になったのです。
分かり辛い質問かもしれませんがよろしくお願いします。
0057nobodyさん
2005/12/12(月) 22:39:12ID:???後者:パスワード等と記したファイルはドキュメントルートより上に置いた方が良い
0058nobodyさん
2005/12/12(月) 23:14:46ID:???ありがとうございます!
人に知られたくないものは上に置きますね。
0059nobodyさん
2005/12/12(月) 23:15:52ID:???速レス頂けたのにお礼の返事が遅れて済みませんでした。
0060nobodyさん
2005/12/13(火) 04:28:32ID:???$hoge->{'bar'}=$moge->{'bar'}と記述してしまって、左辺に
値でなくてリファレンスが入ってしまって泣きそうなんですけど、
例えばすべて$hoge{'bar'}[$i]といった多重配列のフォーマットにして
書き直したほうがいいのでしょうか。
0061nobodyさん
2005/12/13(火) 04:38:08ID:???>>1
1: 自分はこういう事がしたい。
何がやりたいのか書いとくれ。それによって適したやり方があるから
ただ配列をコピーしたいだけなら
@arr1 = @arr2;
でできるし、ディープコピーをしたいならCloneモジュールを薦めるし
0062nobodyさん
2005/12/13(火) 12:59:52ID:???一つ目:
否。クライアントからのリクエストパケットも通信量に含まれるよ。
あと、携帯だと、中継サーバが対象端末用に言語を変換している場合も。
でも基本的なことは >>56 のでOK。
0064nobodyさん
2005/12/13(火) 14:29:33ID:???0066nobodyさん
2005/12/13(火) 14:32:29ID:???006860
2005/12/13(火) 14:50:00ID:???再度出直してきますorz
どうにも強引ですが、内部のリファレンスをコピーしてしまっている
例を挙げます。
$hoge=[{'id'=>'65563','count'=>'11'},{'id'=>'87214','count'=>'14'}];
$moge=[{'id'=>'65563','count'=>'32'},{'id'=>'87214','count'=>'28'}];
@$hoge=@$moge;
$moge->[0]{'count'}=60;
print $hoge->[0]{'count'};
0069nobodyさん
2005/12/13(火) 17:44:46ID:???強引というか、それが普通の挙動で、リファレンスのいいところでもあるのに
ちなみに>60の「多重配列」もリファレンスだからね
0070nobodyさん
2005/12/13(火) 22:31:03ID:???my $cgi = new CGI;
if(param()){
if (param('save')){
print header(-type => "text/html",-charset =>"x-euc-jp" -cookie => param('test'));
}else{
print header(-type => "text/html",-charset =>"x-euc-jp");
}
printDump,start_html('test'),start_form,
"クッキーにデータを保存する",
submit(-name => '保存', -value => 'save');
end_form,end_html;
}else{
printheader(-type => "text/html",-charset =>"x-euc-jp"),
Dump,start_html('test'),start_form,
checkbox(-name => 'test', -value => 'test'),p,
submit,end_form,end_html;
}
0071nobodyさん
2005/12/13(火) 22:34:20ID:???親CGIでsubmitを押すと、子のCGIに親のフォームデータが送られますが、
その子CGIでsubmitを押すと、孫CGIには親のフォームデータが引き継がれません。
子CGIで、親CGIのフォームデータをhiddenfiledなどに入れれば良いのですが、
フォームデータが多い場合は少々煩雑になってしまいます。
何かスマートな方法がありましたら、ご教示願えますでしょうか。
0072nobodyさん
2005/12/13(火) 22:38:04ID:???false print header(-type => "text/html",-charset =>"x-euc-jp" -cookie => param('test'));
true print header(-type => "text/html",-charset =>"x-euc-jp", -cookie => param('test'));
false submit(-name => '保存', -value => 'save');
true submit(-name => 'save', -value => 'save');
以上、よろしくお願いします。
0073nobodyさん
2005/12/13(火) 23:29:21ID:???別スレにて、「」で囲まれた単語を抜き出してカウントするスクリプトの
ソースをいただいたのですが、
http://pc8.2ch.net/test/read.cgi/php/1133361560/116
これを数の多い順にソートするにはどう記述すればよろしいでしょうか?
0074nobodyさん
2005/12/13(火) 23:36:48ID:???元スレで既に回答されているが。
http://www.kt.rim.or.jp/~kbk/perl-5.8/perlfaq4.html#how_do_i_sort_a_hash__optionally_by_value_instead_of_key_
http://perldoc.jp/docs/perl/5.6.1/perlfunc.pod#item_sort_SUBNAME_LIST
007573
2005/12/14(水) 00:00:59ID:???74さん有難うございます!
0076nobodyさん
2005/12/14(水) 00:34:23ID:???#!/usr/local/bin/perl
use CGI qw/:standard Vars/;
my $charset = 'Shift_JIS'; my %param = Vars;
my($cookie, @form);
if ($param{'save'} eq 'save') { # 孫
$cookie = cookie(-name => 'test', -value => 'test');
@form = ('OK');
} elsif (keys %param) { # 子
@form = (
'Cookie に保存',
map(hidden($_, $param{$_}), keys %param),
submit(-name => 'save', -value => 'save'),
);
} else { # 親
my $name = 'a';
@form = (map(checkbox(-name => $name++, -value => $_), 1..5), submit);
}
print header(-charset => $charset, -cookie => $cookie),
start_html(-title => 'test', -encoding => $charset, -lang => 'ja'),
Dump,
start_form, p(@form), end_form,
end_html;
007776
2005/12/14(水) 00:39:21ID:???http://perldoc.jp/docs/modules/CGI-Session-3.11/Tutorial.pod
http://search.cpan.org/search?query=Session
0079nobodyさん
2005/12/14(水) 01:32:12ID:???おお!早くも神レス大変ありがとうございます。
あまりにもスマート過ぎて、素人な自分には謎の部分(特にVars)が多いのですが、
これから理解して、神コードを取り入れさせていただきます。
Vars はperldocを読んでも今ひとつ理解できなかったのですが、
こんなに便利なものだとは判りませんでした。
繰り返しになりますが、質問に答えていただいてありがとうございました。
0080nobodyさん
2005/12/14(水) 02:03:01ID:???http://search.cpan.org/~lds/CGI.pm-3.15/CGI.pm#FETCHING_THE_PARAMETER_LIST_AS_A_HASH:
0081nobodyさん
2005/12/14(水) 10:29:49ID:???ほとんどの本やwebにあるサンプル等はopenを使ってます。
sysopenのメリットはわかるのですが、デメリットとかあるのでしょうか?
それと何故、サンプル等はopenの方が多く使われてるのでしょうか?
0083nobodyさん
2005/12/14(水) 11:02:06ID:???いちいちフラグ用の定数を用意する必要もないから
openでできることをやる分には楽だよ。
sysopenじゃないと指定できないフラグの組み合わせが
あるからそういうときはsysopen使うけど。
0084nobodyさん
2005/12/14(水) 11:10:22ID:???話した人ってのは、メリットを話した上で勧めたんだろ?
だから、「sysopenのメリットはわかるのですが」と書いてある。
…で、>>81は多くがopenの方が使われてるのを疑問に
思ったんじゃないの?
あと、何故勧めないのか書かないと回答にならんよ。
>>81
漏れは>>83と同じようにフラグ用の定数用意がめんどう。
パイプ等はあまり使わないから、sysopenでも良いんだけどね。
008573
2005/12/14(水) 12:37:52ID:???sort { $b <=> $a }でソートされるのはわかったんですが、
どこに記述すればいいのかわかりません。
21行目に、sort {$b <=> $a} %count と書くと、ソートされた数字のみが表示されてしまいます。
0086nobodyさん
2005/12/14(水) 13:36:36ID:???sysopen()は環境によって使えなかったりするモードがある。
例えばWindows環境ではロック関連が使えないとか。
それを注意していれば特に問題はないよ。
>>85
http://perldoc.jp/docs/perl/5.6.1/perlfunc.pod#item_sort_SUBNAME_LIST
> # this sorts the %age hash by value instead of key
> # using an in-line function
> @eldest = sort { $age{$b} <=> $age{$a} } keys %age;
0088nobodyさん
2005/12/14(水) 21:24:43ID:S7xP2RtY全半角英数字・全角日本文字(ひらがな・カタカナ・漢字)以外の文字
が入っているか判定したいのですが、
そのための正規表現を教えてもらえませんか、文字コードはEUCです。
0089nobodyさん
2005/12/14(水) 21:49:35ID:???>8にあるサイトが詳しいので良く読むといいよ
0090本日@挫折90%
2005/12/14(水) 22:43:42ID:SzJP4ieY等勉強したのですが、perlプログラムのサンプルを見たのですが、
まったく桁が違うすごいプログラムでした、このまま本の通りに
覚えていけばいいのか、正直不安になりました、このまま、焦らずに
本書どおりに進めていいのでしょうか?
熟練した方もしいい教材などありましたら、参考におしえてください。
0091本日@挫折95%
2005/12/14(水) 22:45:21ID:SzJP4ieY0092nobodyさん
2005/12/14(水) 22:50:34ID:???バット二三回振って打てねーよとか言われても誰も相手しないよ
0093nobodyさん
2005/12/15(木) 00:33:35ID:???最初から全てを理解できる人が居たら、それは天才。
他人が書いたperlのソースをスラスラ読めるようになったら上級者。
(ピンキリあるし、神レベルのコードはそれはそれで読むのが難しい。)
0094nobodyさん
2005/12/15(木) 01:11:02ID:???文章(コード)中に知らない文法やら単語がいっぱいでてくるところだろうな。
わからないところはとりあえず飛ばせばOKくらいでやらないと
学校の勉強に慣れてきた人間には正直ツラいと思う。
0095nobodyさん
2005/12/15(木) 01:37:31ID:w2M1wJUgopenはパイプ文字による外部プログラブが実行可能です。
「ブラウザで入力した情報をformにて送信して、
その情報のファイル名を表示するなんてCGIを作った場合、
入力文字にパイプを混入されるとセキュリティ上危険(入力文字検査すればOK)」
が理由のアドバイスかもね。
0096nobodyさん
2005/12/15(木) 08:39:34ID:???{
local *FH;
-f $file or die "No such file.\n";
open FH, '<' . $file or die $!;
while (<FH>) { ++$count{$_} for 「 (.*?) 」/g }
close FH;
}
header(-charset => $charset),
start_html(-encoding => $charset, -lang => 'ja'),
table(Tr([ map td([ $_, $count{$_} ]), sort keys %count]) ),
end_html,
文中の単語の数を数えるスクリプトなんですが、
「x回以上出た場合はbgcolorをredにする」という風にしたくて、
if(5<$count{$_}){$bg="orange";}を追加して、
tr部分に{-bgcolor=>$bg}を追加したんですが、上手く変わってくれません。
どなたかご教授お願い致します。
0097nobodyさん
2005/12/15(木) 08:43:28ID:???009896
2005/12/15(木) 08:45:17ID:???CGI.pmっていうのがそもそも何なのか・・・
0100nobodyさん
2005/12/15(木) 09:30:08ID:???いくらPerlでもこんな自由な書き方できないだろ?
0101nobodyさん
2005/12/15(木) 11:20:29ID:???こっちのスレから誘導されてきたやつだ
■ このスレッドは過去ログ倉庫に格納されています