くだすれPerl(超初心者用)2
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/03/03(月) 05:07:32ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Perl使いが優しくコメントを返しますが、
お礼はPerlの布教と初心者の救済をお願いします。
0478nobodyさん
2008/07/31(木) 17:52:42ID:???これがわからんから答えにくいぞ。
0480nobodyさん
2008/07/31(木) 20:48:05ID:???解決済み
○○○○○○○
○○○○○○○
○○○○○○○
未解決
○○○○○○○
○○○○○○○
○○○○○○○
0481nobodyさん
2008/07/31(木) 21:04:23ID:???○○○○○○○
○○○○○●○
○○○○○○○
未解決
○○○○○○○
○○○○○○○
○○●○○○○
0482nobodyさん
2008/07/31(木) 21:26:52ID:???0483469
2008/07/31(木) 23:25:49ID:???解る方いたら宜しくお願いします。
0484nobodyさん
2008/07/31(木) 23:42:25ID:???0485nobodyさん
2008/07/31(木) 23:47:28ID:???./accesskaiseki.cgi の仕様によります。
閲覧可能なのであれば、同プログラムのソースを読み解いてみましょう。
運が良ければ system("./accesskaiseki.cgi", "id=$page_id") で動作するかもしれません。たぶんしないけど。
独立したスクリプトファイルで、引数が重要な意味を持つものを require するのは大抵得策ではありません。
require はコードを、あなたのスクリプト内に読み込み、あなたのスクリプトの一部分であるかのように実行します。
独立したプログラムを呼ぶなら、代わりに system()、exec()、または `` 演算子を使うとよいでしょう。
それぞれ特徴があり、適切に使い分けるべきものですから、この機会に調べてみてください。
> お恥しい質問ですいません。
ここはくだすれ。気にスンナ。
0486469
2008/08/01(金) 00:25:55ID:???>>485
有難うございます。
今まで基本が無いままに、いくつかのCGIを強引に改造したりして使っていましたが、結局は遠回りしていたように思いました。
もう少し基本的なことから調べてやってみようと思います。
>>485さんの優しいお言葉に感謝します。
0487nobodyさん
2008/08/02(土) 07:23:12ID:q/UXvg4Wいま、以下の記述により、$CがAAAの場合、「これはAAAパターンです」となるようにしてあります。
if ($A ne '' && $B ne '' && $C eq 'AAAA') {
$str = 'これはAAAAパターンです';
}
else {
$str = '';
}
これに付け足して、$CがBBBの場合、「これはBBBパターンです」となるようにしたいのですが、
その場合の記述を教えていただけると助かります。
よろしくお願いいたします。 m(_ _)m
0488nobodyさん
2008/08/02(土) 08:20:01ID:???$str = '';
if ($A ne '' && $B ne '' && ($C eq 'AAAA' || $C eq 'BBB')) {
$str = "これは$Cパターンです";
}
0489nobodyさん
2008/08/02(土) 09:04:49ID:???$str = 'これはAAAAパターンです';
} elsif ($C eq 'BBBB') {
$str = 'これはBBBBパターンです';
} elsif ($C eq 'CCCC') {
$str = 'これはCCCCパターンです';
else {
$str = '(´・ω・`)';
}
0490487
2008/08/02(土) 16:13:10ID:???できました!!
感謝しています(^^)
0492487
2008/08/03(日) 18:35:47ID:???(´・ω・`) は、もちろん使ってません(笑)
0493nobodyさん
2008/08/03(日) 19:26:28ID:???0495困った
2008/08/04(月) 00:04:55ID:???リングワールドっていうPerl言語で出来たブログを使わせてもらっているのですが、
そのブログのタイトル部にフラッシュを表示させたいのですが全くPerl言語が分からないので
やさしい方、教えて下さい。
作成者によると、現在はJPGなど画像表示が出来るようになってますが、フラッシュは無理とのこと。
改造は自由で、個人でしてくださいとの事です。
サイズは幅760ドットというのが前提らしいので、フラッシュもそれに合わせるつもりです。
多分この辺りだと思うのを次レスに書きますが、違う可能性もあるので
ttp://blog-imgs-26.fc2.com/i/k/a/ikajyef/tt.txt
に全文アップしましたので、どうぞよろしくお願いします。
0496困った
2008/08/04(月) 00:05:44ID:???my $title_html;
my $title_description_html;
if ( $title_description ne "" ) {
if ( $title_description ne "" ) {
$title_description_html .=<<HTML;
<div class="title_description">
$title_description
</div>
HTML
}
}
if ($title_image ne "") {
$title_html = <<TITLE;
<div class="title_box"><h1><a href="$config->{'toppage_url'}" class="title"><img src="$image_url/$title_image" border="0" alt="$title_str"></a></h1></div>
TITLE
} else {
$title_html = <<TITLE;
<div class="title_box">
<div style='padding:10px'>
<div class="title_string">
<h1>
<a href="$config->{'toppage_url'}" class="title">
$title_str
</a>
</h1>
</div>
$title_description_html
</div>
</div>
TITLE
0497nobodyさん
2008/08/04(月) 00:12:33ID:???0499nobodyさん
2008/08/04(月) 00:18:17ID:???0500困った
2008/08/04(月) 00:21:26ID:???作者の方に聞いたのですが、「ご自分で研究していただくようにお願いします。」
と、回答がありました・・・が、1から覚える時間が・・まぁ勝手な言い分ですが。
0501nobodyさん
2008/08/04(月) 00:23:48ID:???↑
ここからここまでの間に好きなようにhtml書いてよ。
↓
TITLE
0503困った
2008/08/04(月) 00:34:29ID:???例えばこんな感じになるんでしょうか?
$title_html = <<TITLE;
<P><OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="760" height="200">
<PARAM name="MOVIE" value="http://〜〜〜〜.swf">
<PARAM name="PLAY" value="true">
<PARAM name="LOOP" value="true">
<PARAM name="QUALITY" value="high">
<EMBED src="http://〜〜〜〜.swf" width="760" height="200" type="a"></OBJECT></P>
TITLE
0504困った
2008/08/04(月) 02:24:24ID:???$title_html = <<TITLE;
<paramname=quality value=high><param name=bgcolor value=#F7F7F7>
<embed src="http://〜〜〜.swf" quality=high bgcolor=#F7F7F7 width=760 height=150 type="application/x-shockwave-flash" >
</embed>
TITLE
} else {
$title_html = <<TITLE;
<paramname=quality value=high><param name=bgcolor value=#F7F7F7>
<embed src="http://〜〜〜.swf" quality=high bgcolor=#F7F7F7 width=760 height=150 type="application/x-shockwave-flash" >
</embed>
TITLE
よく分からないので合ってても違ってもフラッシュ表示しろ!みたいにしたら出来ました!
ありがとうございました。
0505nobodyさん
2008/08/05(火) 00:04:57ID:???配列の書き方すら変わるそうで
すると、今からperl5のらくだ本とか買うのは無駄かな?
リャマはもう読破したんだが…Effectiveとか、クックブックとか、らくだ本に進んでみたいと思っています
ただ、正直安い本じゃないのでperl6の話を聞き迷っています。
それよりも、いつ出来上がるか分からないperl6の書籍を待つより、perl5のこれらの秀逸な文章を読んでしまった方がいいかな?
0507nobodyさん
2008/08/05(火) 22:10:42ID:???cpan[1]> install Gtk2
CPAN: Storable loaded ok (v2.18)
Going to read /root/.cpan/Metadata
Database was generated on Mon, 04 Aug 2008 19:02:47 GMT
CPAN: YAML loaded ok (v0.66)
Going to read /root/.cpan/build/
............................................................................DONE
Found 24 old builds, restored the state of 24
Running install for module 'Gtk2'
Running make for T/TS/TSCH/Gtk2-1.183.tar.gz
Has already been unwrapped into directory /root/.cpan/build/Gtk2-1.183-N08YV3
-- No Makefile created, won't make
Running make test
Make had some problems, won't test
Running make install
Make had some problems, won't install
0508nobodyさん
2008/08/05(火) 23:23:39ID:???Makefile.PL かなんかあんだろうから、そん中見て、わかんなかったら手で叩いて様子を見てみちゃどうか。
0510508
2008/08/07(木) 00:54:10ID:???>>491 参照。
どうやったらうまくいったね?
原因はなんだったんだろうね?
そういう情報が世界の役に立つのね。
感謝はおいしくいただきたいのね。
0513nobodyさん
2008/08/07(木) 03:09:13ID:???プログラム業界では特に嫌われる罠。まあそれは勝ち組って事だが、他の業界でも大抵そうだから、結局だめな罠。
まあくだ質だから、こういうのも仕方ないかw
0518nobodyさん
2008/08/07(木) 08:12:39ID:???ここ荒らされてもこまるしな
でもオフラインドキュメントにもよさはあるよ。
0519nobodyさん
2008/08/07(木) 09:13:34ID:???0521nobodyさん
2008/08/07(木) 11:02:54ID:???From: [330] デフォルトの名無しさん <sage>
Date: 2008/07/27(日) 00:15:07
>>327
勉強したいなら本ばっか読んでないで
プログラム書けよ
受験勉強じゃねーんだからw
0522nobodyさん
2008/08/07(木) 13:53:58ID:???日本語しか分からないというのなら、らくだ本じゃなくて翻訳ソフトを買うことを推奨する。
EffectivePerlは一通り読む。
クックブックは買って常備する。
Perlの質問の答えは、だいたいPerldocかクックブックのどっちかに載ってる。
0523nobodyさん
2008/08/07(木) 14:11:37ID:???オライリーの「CGIプログラミング」って、初めてのPerl読んだくらいで理解できる?
それとも、続・初めてのPerlくらいの知識が要求されるんだろうか?
0524nobodyさん
2008/08/08(金) 00:32:20ID:???BOOK:
for ( @want_to_read ) {
$book = new Book($_);
$book->read($_);
if ( $book->did_understand() ) {
$book->sale_to('Book-off');
}
else {
push @read_later, $book;
}
next BOOK;
}
0526nobodyさん
2008/08/08(金) 14:27:50ID:???0527nobodyさん
2008/08/08(金) 14:33:01ID:???0528nobodyさん
2008/08/09(土) 22:29:21ID:???Apacheはかんたんにインストールできるけど、これって自分もサーバになるってことでしょ?
セキュリティとかむちゃくちゃ怖くない?
でも設定ファイルとか超難しいし…みんなどうやって勉強したの?
0529nobodyさん
2008/08/09(土) 22:39:09ID:???0530nobodyさん
2008/08/09(土) 22:58:23ID:???そんなに難しいかぁ?
ってか、cgiやhtml的な知識だけでなく、
そうゆうことも含めてテストしたり、調整、制御できるのが、
ローカルサーバー組む利点ではないのかな?
(なにも自鯖で公開するとかって意味ではなくね。)
0531nobodyさん
2008/08/10(日) 00:23:14ID:???とりあえず設定ファイルのアクセス制限を「俺専用」に書き換えるだけの
知識でいいんだからあんまり難しく考えなくていいよ。
よく分からないままいろいろ公開してる人よりは怖がってるぐらいのほうがいいかな。
0533nobodyさん
2008/08/10(日) 20:41:19ID:SuPNfSed$aaaa= とすると、該当する数値が例えば2と5と10のように複数ある場合、
この中で一番大きい数字を $aaaa_maxにしたいのですが、記述を教えてください。
説明が下手で申し訳ないのですが、伝わった方、よろしくお願いします。 m(_ _)m
0534533
2008/08/10(日) 20:48:29ID:SuPNfSed$aaaa_max="$aaaaの中の一番大きい数値";
としたいのです。(^^;
0535nobodyさん
2008/08/10(日) 22:12:07ID:???$aaaa_max=0;
ループ{
$aaaa= ; # $aaaaをひとつ取得する (2,5,10)
if($aaaa>$aaaa_max){
$aaaa_max = $aaaa;
}
}
print $aaaa_max;
・モジュールと配列使うなら
use List::Util qw(max);
@aaaa = (2,5,10);
$aaaa_max = max @aaaa;
print $aaaa_max;
0536nobodyさん
2008/08/11(月) 00:37:27ID:???print $aaaa_max;
$aaaa が複数の値になるらしいからループ案でいいんだろうね。
0537nobodyさん
2008/08/11(月) 06:09:49ID:???0538nobodyさん
2008/08/11(月) 08:45:40ID:???0539nobodyさん
2008/08/11(月) 22:49:56ID:???0540nobodyさん
2008/08/11(月) 23:15:47ID:???0541533
2008/08/12(火) 02:23:53ID:ihBdNY6vなんとか希望通りできました。
感謝してます。
もう一つ教えていただきたいのですが・・
$total_plus = $totalの数値 + $total{'count'}の数値
としたい場合の記述を教えていただけると助かります。
よろしくお願いします。 m(_ _)m
0542nobodyさん
2008/08/12(火) 02:38:17ID:???0543541
2008/08/12(火) 02:56:40ID:???お騒がせしました。
0544nobodyさん
2008/08/12(火) 13:48:33ID:Iypx/LW1行ごとに配列にまとめたいのですがどうしたらいいでしょうか?
よろしくおねがいします。
my($fh,$cond) = @_;
while(<$fh>){
return [
$_,
$fh->eof ? undef : $fh->getline,
$fh->eof ? undef : $fh->getline,
$fh->eof ? undef : $fh->getline,
] if /$cond/;
}
return;
}
0546nobodyさん
2008/08/12(火) 17:06:12ID:???カスタマイズは自分でしてね。
use Data::Dumper ;
my @arr ;
while (<>) {
next if ! /Data/ ;
push @arr, [ $_, map{ eof() ? () : scalar <> ; } 0 .. 2 ] ;
# 一箇所限定なら、以下でも良いんじゃね?
# push @arr, $_, map{ eof() ? () : scalar <> ; } 0 .. 2 ;
# last ;
}
print Dumper \@arr ;
0547nobodyさん
2008/08/12(火) 17:06:58ID:???0548nobodyさん
2008/08/12(火) 17:28:46ID:???0550nobodyさん
2008/08/12(火) 20:56:45ID:???してしまえばヤリたい放題でつ (><;)
0551nobodyさん
2008/08/12(火) 21:51:51ID:???Can't locate File/Slurp.pm in @INC (@INC contains: ><;)
0552nobodyさん
2008/08/12(火) 22:29:55ID:???my @lines = read_file('foooooooooo.txt');
chomp(@lines);
my @list;
foreach(0..$#lines){
$lines[$_] =~ m/hogehoge/ or next;
push(@list, [@lines[$_..$_+3]]);
}
これで、ヤリたい放題になるって本当ですか?
0553nobodyさん
2008/08/13(水) 00:18:01ID:???ヤリたいコトとヤる相手とヤる場所によります。
気取ったイケメンが自宅四畳半なら >>545。
慣れない奴がミラパルコで大回転なら >>546。
絶倫がロイヤルスイートで小さい相手とヤるなら >>552。
それぞれ可能なオプションが異なります。
0554nobodyさん
2008/08/13(水) 07:03:24ID:???0556nobodyさん
2008/08/17(日) 17:53:31ID:???とやるとHTMLとしてブラウザ上に出力されるのは分かるのですが、同じようなやり方で
ファイル出力をする方法はないでしょうか?
一々
print FILE $mojiretu;
と打つのもアレなので、何か方法があったらよろしくお願いいたします。
利用環境
フリーのCGIサーバー:isweb
対象ブラウザ(関係ないと思いますが……):基本的にFireFox2,3、ie6,7、OSはwin、macで動けばいいと考えています。
以上です。よろしくお願いいたします。
0557nobodyさん
2008/08/17(日) 18:18:27ID:???アレって?
0558556
2008/08/17(日) 18:22:55ID:???申し訳ありません。
一々
print FILE $mojiretu;
と打つのも面倒なので、何か方法があったらよろしくお願いいたします。
と訂正します。
0559nobodyさん
2008/08/17(日) 18:24:59ID:???え? これ打つのが面倒なの?
プログラミングやめた方がいいよ
0560nobodyさん
2008/08/17(日) 18:25:42ID:???{ここに文字列を入力する}
{ここに文字列を入力する}
{ここに文字列を入力する}
HTML
print FILE $mojiretu;
0561nobodyさん
2008/08/17(日) 18:36:29ID:???なんたら
なんたら
HTML
0562556
2008/08/17(日) 20:07:42ID:???ヒアドキュメントというキーワード(560さんや561さんが教えてくださったもの)で調べたら、目的の物がありました。
本当に有難うございます。
0563556
2008/08/19(火) 02:01:55ID:???0564556
2008/08/20(水) 00:20:47ID:Pb480w2m0565556
2008/08/20(水) 05:37:21ID:???昨日の、スポーツドリンクがいけなかったのかしら。
0566556
2008/08/21(木) 04:50:49ID:???小さい塊が、まだ少し入っているようだ。
0567556
2008/08/21(木) 17:33:02ID:???0568nobodyさん
2008/08/22(金) 09:30:05ID:???0569556
2008/08/22(金) 09:40:41ID:???仕方なく会社で用を足す。俺の階は、大便用が3つしかないから、朝はラッシュ時に壮絶なバトルが、展開される。。。
0570nobodyさん
2008/08/22(金) 19:30:36ID:???0571nobodyさん
2008/08/22(金) 21:38:16ID:???hoge$hensu{key}のような感じなのですが…
0573nobodyさん
2008/08/22(金) 23:56:24ID:???${"hoge$hensu"}{key}
ただしこれが可能なのは以下の条件を満たす場合です:
- 対象のハッシュがパッケージグローバルであること。
- それを行うスコープで事前に no strict 'refs' して制限を緩めておくこと。
# もちろんコード全体を use strict していますよね?
より望ましい解は >>572 が言うように「シンボリックではない」リファレンスを使うことです。
リファレンスを活用した「ハッシュのハッシュ」、すなわち二次元ハッシュがあなたの望むものです。
%hoge = ();
$hoge{'hoshinoa'}{key} = 'ki';
$hensu = 'hoshinoa';
print $hensu, $hoge{$hensu}{key}, "\n";
この方法には前述のような制限がありません。
シンボリックリファレンスが strict で制限されていることからも分かるように、イマドキはこちらが主流です。
0574nobodyさん
2008/08/23(土) 00:01:15ID:???よくわかりませんががんばろうと思います><
0575nobodyさん
2008/08/23(土) 00:20:11ID:???0576573
2008/08/23(土) 00:45:43ID:???元の >>571 の質問に関する話題は perlfaq7 の "How can I use a variable as a variable name?" で詳しく触れられています。
さらに、リファレンスについては perlreftut, perlref の両ドキュメントに、また多次元配列及びハッシュについて perllol に、もっと詳しい話が載っています。
ぜひ見てみてください。
■ このスレッドは過去ログ倉庫に格納されています