Perl
- Perl 変数 連番 for
いつもお世話になっております。 for文?の使い方を教えてほしいです。 my $test1 = $form->param('test1'); my $test2 = $form->param('test2'); my $test3 = $form->param('test3'); my $test4 = $form->param('test4'); my $test5 = $form->param('test5'); このようにtestは同じでその後ろに連番がついている場合の変数なのですが これが何十個もあれば、記述するのも管理するのも、少し面倒です。 それでfor文を利用し、 for ($i= 1; $i < 31; $i++){ この中の記述 } ソースを短縮したいのですが、 「この中の記述」がわかりません・・・ ご教示お願い致します。
- ベストアンサー
- Perl
- perlhogehoge
- 回答数1
- Perl ランダム 0と1 かぶり
いつもお世話になっております ご教示お願い致します。 □←0 ■←1 とします。 この0と1をランダムに5こでるようにします。 ↓ 例1) □■■□■ 例2) ■■□□□ このようにバラバラに出現させることができました。 しかし、 極稀になのですが、 □□□□□や■■■■■ とすべてかぶることがあります。 この■(1)はすべてかぶってもいいのですが、 □(0)はかぶらないでほしいのです まずそのソースが下記・・・↓ srand(time()^($$ + ($$<<15))); our $val1 = int(rand(2)); our $val2 = int(rand(2)); our $val3 = int(rand(2)); our $val4 = int(rand(2)); our $val5 = int(rand(2)); 0と1が必ずバラバラになるようにするにはどのように するのでしょう?
- ベストアンサー
- Perl
- perlhogehoge
- 回答数2
- raspberry pi でブラウザ操作できない
ブラウザからボタンを押すとraspberry pi から写真を撮影することをしたいのですが、うまくいきません。アドバイス願います。 html側のソース <html> <head> <title>retasu boy robot</title> <script src="//ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js" type="text/javascript"> </script> </head> <body> <h1>Hello world from retasu boy robot</h1> <form> <input type="button" value="On" onclick="go('w')" style="font-size:200%;"> <input type="button" value="Off" onclick="go('s')" style="font-size:200%;"> </form> <script type="text/javascript"> function go(qry) { new Ajax.Request('http://192.168.11.204/picutre3.py?q=' + qry,{method: 'GET'} ); } </script> </body> </html> py側のソース #!/usr/bin/pythonCGI import picamera import datetime import ftplib import time from flup.server.fcgi import WSGIServer now = datetime.datetime.now() dir_name = now.strftime('%Y%m%d') dir_path = '/var/www/donald' file_name = now.strftime('%H%M%S') file_name = dir_name + file_name def app(environ, start_response): start_response("200 OK",[("Content-Type", "text/html")]) i = urlparse.parse_qs(environ["QUERY_STRING"]) yield(' ') if "q" in i: if i["q"][0] == "w": picamera = picamera.PiCamera() picamera.capture(dir_path+'/'+file_name+'.jpg') print("ok") WSGIServer(app).run()
- Perl ログファイルの一部修正
ご教示お願い致します。 $log = "ファイルの時間"; @NEWTM = grep(/,$log,/, @DATA); last if ($j > @NEWTM); $data = $NEWTM[$j]; my ($LogNo,$log,$Logname,$Logtitle,$Logtext,$Logpassword,$Logip,$Lognewtm,$Logcount) = split(/,/, $data); ++$Logcount; for my $j (0 .. $#DATA) { if ($DATA[$j] =~ /,$log/) { $DATA[$j] = "$LogNo,$log,$Logname,$Logtitle,$Logtext,$Logpassword,$Logip,$Lognewtm,$Logcount\n"; last; } } 各スレッドの単純なアクセスカウンタを設置しました。 my ($LogNo,$log,$Logname,$Logtitle,$Logtext,$Logpassword,$Logip,$Lognewtm,$Logcount) = split(/,/, $data); これは1発目に書き込まれたものを一度書き出し ++$Logcount; で+1をし、 $DATA[$j] = "$LogNo,$log,$Logname,$Logtitle,$Logtext,$Logpassword,$Logip,$Lognewtm,$Logcount\n"; 再度、書き込むという処理なのですが、 $Logcount以外は、書き出す必要もないですし、書き込む必要もありません。 この場合での$Logcountだけを書き換える処理をしたいのですが、どのようにするのでしょうか?
- Perl 2重投稿の防止
http://unimakura.jp/php/not-double-post.html このサイトはPHPとしての参考がかかれていますが、 このようなことを、Perlでしたいのですが、どう記述すればいいのでしょうか?? 完了画面での、フォーム再送信を禁止にしたいです。
- ベストアンサー
- Perl
- perlhogehoge
- 回答数6
- Perl 行の置換
ご教示お願い致します。 ーーーーーーーーーーーテキストファイルーーーーーーーーーーー 5,a,a,a,a,a 4,a,a,a,a,a 3,a,a,a,a,a 2,a,a,a,a,a 1,a,a,a,a,a ↓ 5,a,a,a,a,a 4,a,a,a,a,a 3,a,a,a,a,a 2,ddddd,44444,sssss,ffffff,ssssss 1,a,a,a,a,a my $NO = $form->param('NO'); $NO = 2 の場合 この1列目が2のとこのを 修正訂正をしたいです。 どのようにするのでしょうか?
- ベストアンサー
- Perl
- perlhogehoge
- 回答数1
- Perl HTML JavaScript
ソースコードについて <input type="hidden" id="hoge" name="hoge" value="$hensu"> このコードのvalueの値(変数)をソースから見て 見えなくさせたい(認識できなくさせたい) おそらく完全に見えなくするのは不可能と思うのですが、 valueの値をソースで見えにくくする、認識できなくする方法は ないでしょうか? 完全に見えなくできるならそれが1番いいです^^; valueの値だけjsの外部ファイルにするとかですか? その方法ですと、Valueの値はPerlでの変数なのですが、 そのようなことも可能でしょうか?
- ベストアンサー
- Perl
- perlhogehoge
- 回答数1
- Perl オープン関数について
Perl オープン関数について いつもお世話になっております。 オープン関数でわからないことがあるのでご教示お願い致します。 ■test.cgi■ open(FILE, ">sled/$log") or die("error :$!"); eval{ flock(FILE, 2) }; print FILE @DATA; close FILE; ■bbstest.cgi■ open(FILE, ">>sled/$loglog") or die("error :$!"); eval{ flock(FILE, 2) }; print FILE @DATA; close FILE; 上記のtest.cgi側では「>」これが1個で書き込まれるのですが bbstest.cgi側では「>」これ1つだけですと、すべての内容がリセット され、その時入力した内容だけ残ります。 それを「>>」にすると追加はされるのですが、 test.cgi側では 上へ上へと内容は追加されていくのに対し bbstest.cgi側では 下へ下へ追加されていきます。 書込方法は、両方共 unshift(@DATA,"$NO,$tm,$TITLE,$TEXT,$PASS,$IP\n"); このようにしているのですが、 なぜ、同じ処理で、書込方法がかわるのでしょうか? 目的は上へ上へがいいのですが。。。
- ベストアンサー
- Perl
- perlhogehoge
- 回答数2
- perlの正規表現 (ワンライナー)
以下のような文字列から2つの要素だけ抽出するようなperl/rubyのスクリプトはどのように書いたらいいでしょうか? できればワンライナーで実現したいです(が、ワンライナーとしてはちょっと複雑なのでしょうか。。。) 元の文字列 -test t001 +opt0=1024 -N n_paramX -seed 1 -test t002 +opt0=1024 -opt1=2486 -N n_paramY -test t003 +opt3=1234 -N n_paramZ ... 整形後の文字列 t001 n_paramX t002 n_paramY t003 n_praramZ ※ 各行に -test と -N が必ず存在していることは仮定してOKです スクリプトで記述した場合: while(<>) { /\-test (\S+)/; $match00 = $1; /\-N (\S+)/; $match01 = $1; print "$match00 $match01\n"; } よろしくお願いします
- 締切済み
- Perl
- tk_1980024
- 回答数2
- サクラエディタで連続改行”\r\n”を置換
サクラエディタで連続する改行”\r\n”を置換したいです。 \r\n\r\n で置換しても、 量子指定で {\r\n\r\n}+ で置換しても、 \r+\n+\r+\n+ で置換しても、 うまくいかないのです。
- ベストアンサー
- Perl
- paranoia23
- 回答数5
- Perl メルマガシステム
ご教示お願い致します。 現在メルマガシステムを作ろうと考えているのですが、 なかなか上手くいきません。 まず メールを受信するプログラムは http://chaichan.lolipop.jp/perlnote/perlnote2007-06-20.htm この、サイトを参考にできたのですが、 このプログラムだと Toは自分のアドレスでないと送信できませんでした。 Fromを自分のアドレスにし、Toをユーザーのアドレス(複数) にしたいのですが、どのようにすればいいのでしょうか?
- 締切済み
- Perl
- perlhogehoge
- 回答数3
- Perlについて質問です
いつもお世話になっております。 画像フォルダの中の画像の一覧するプログラムを作成したのですが、 opendir(DIRHANDLE, "./img/"); foreach(readdir(DIRHANDLE)){ next if /^\.{1,2}$/; print <<END <a href="img/$_" rel="lightbox[sample-group]"><img src="img/$_" alt="" width="100"></a> END } closedir(DIRHANDLE); 画像が横並びでいっぱいになれば下に並べるということをやりたいのですが、 どのようにするのでしょうか? =現在=(■←画像 ■ ■ ■ ■ ■ ============== と縦に並んでしまいます。 これを ↓============== ■■■■■■■ ■■■■■■■ ■■■■■■■ ■■ =============== 23個の画像があり 横が7個(これは横幅のサイズが7個までしかいかなかったとき) になったら下に7個またさらに下に7個下に端数の2個 となるようにです・・・
- ベストアンサー
- Perl
- perlhogehoge
- 回答数2
- Perlで文字列を数式に変換する方法。
Perlでテキストに記載された数式を読み込んで計算を行い結果を表示するプログラムを作ろうと思っているのですが、Perlで文字列を数式として認識させる事は出来るのでしょうか? 例えば以下のような数式が記載されたテキストの場合。 (8-1)*4+2**4+8/4+((16+4-2*4)/2)*3 Perlで演算を行い結果(64)を表示させたい。
- perlのfor文について
perlなのですが、以下のfor文の書き方について教えてください。 for($var1,$var2,$var3,$var4){ s/^(?:Company|Organization|Office|Location)\s*:\s*// if( $_ ); s/"(?:[^"]|\")*"//g if( $_ ); 1 while s/\([^()]*\)//g if( $_ ); } これは、どのようなfor文なのでしょうか。 for文の最後に「1 while」とあるのですが、最後の行の1とは どういう意味で、ここでは何をしているのでしょうか。 また、if文が置換の処理より後ろにかかれていますが、実際は if文が先に動いているのでしょうか。 それと、「 1 while s/\([^()]*\)//g if( $_ );」が以下のようにエラー がでます。 「syntax error at x.pl line x, near "s/\([^()]*\)//g if"」 エラーを出さないようにするにはどうしたらよいでしょうか。
- Perlについてご教示お願い致します。
Perl初心者です。ご教示お願い致します;; ~text.txt~ 3,name,text 2,あ,あ 1,あ,あ 上記のようなテキストファイルがあり、 my $NAME = $form->param('name'); my $TEXT = $form->param('text'); unshift(@DATA,"$NO,$NAME,$TEXT\n"); と、略してますが、 NAMEとTEXTは、ページフォーム内のテキストを入力で CGI.pmを使用し、入力することはできました。 そこで、NOなのですが、次回入力する際、「4」と テキストファイルの1行目の1列目に+1した数字を 書き込むようにしたいのですが、 どのようにすればいいでしょうか? my $NO = $ここに1行目の1列目の数字 + 1; これを,unshiftの前に入れるまではわかるのですが、 「$ここに1行目の1列目の数字」 これがどう求めるのかわりません;;
- ベストアンサー
- Perl
- perlhogehoge
- 回答数1
- PERL カンマ区切り 一致行削除
教えてくださいm(_ _)m 最初に目的を書きます・・・ ~test.txt~ 1,aaa,eee,ttt 3,eee,eee,yyy 5,ttt,yyy,eee 2,yyy,bbb,qqq ↓ 5,ttt,yyy,eee 2,yyy,bbb,qqq ~~~~~~~~~~ 例1)、カンマ区切り3列目が「eee」 の行を全て削除(完全一致) 例2)、カンマ区切り3列目が「e」を含む 行を全て削除(部分一致) というふうにしたいのですが、 どのようにするのかわからないです・・・ 現在下記のように とりあえず1行目(0番目)を削除するとこまできました。 #! /usr/bin/perl $TEST = 'test.txt'; open(FILE, "<$TEST"); eval{ flock(FILE, 1) }; @DATA = <FILE>; close FILE; $NO = 0; splice @DATA, $NO, 1; open(FILE, ">$TEST"); eval{ flock(FILE, 2) }; print FILE @DATA; close FILE;
- ベストアンサー
- Perl
- perlhogehoge
- 回答数3
- perl jcode::convert 半角>全角
perlでjcode::convertで 半角を全角に変換すると 正しく変換される時とされない時があります。 例えば、 sample1.plとsample2.plの my $message = 'の次の「ハンカク」の4文字は半角の文字です。 (注)ここにアップロードすると全角で表示されてしまいます。 この4文字を半角にして確認してください。 sample1.plではこの4文字が全角に変換されるのですが sample2.plではこの4文字は半角のままです。 なぜ全角に変換されないのでしょうか。 (Windows7, ActivePerl v5.16.3) ---sample1.pl------------ require "jcode.pl"; my $message = 'ハンカク文字は使えるかな?'; jcode::convert(\$message,"sjis","", "z"); print "$message\n"; --------------- ---sample2.pl------------ require "jcode.pl"; my $message = 'ハンカク文字'; jcode::convert(\$message,"sjis","", "z"); print "$message\n"; --------------- なお、どちらも以下のようなメッセージが表示されています。 これは何を意味しているのでしょうか。 defined(%hash) is deprecated at C:/Perl64/site/lib/jcode.pl line 684. (Maybe you should just omit the defined()?) defined(%hash) is deprecated at C:/Perl64/site/lib/jcode.pl line 693. (Maybe you should just omit the defined()?)
- ActivePerl エラー?
右クリ→Open→コマンドプロンプト起動(一瞬で落ちる) という状態。 どうすれば。。。 windows10 64bit
- ベストアンサー
- Perl
- noname#235477
- 回答数1
- Perl 禁止語句
テキストの中に禁止語句一覧があります。 それと一致した場合、エラーを返すのですが、 現在のコードですと、 完全一致で、これを部分一致にする 方法を教えてください。 またコードの指摘があればよろしくお願いいたします! ◆ngword.txt◆ あい いう うえ えお ・ ・ ・ 1000行ほど(もっとあるかもしれません) ◆test.pl◆「UTF-8」 #/usr/bin/perl use Encode; my $Name = "え"; $Name = encode('cp932', decode('UTF-8', $Name)); open my $fh, '<', 'ngword.txt'; chomp(@ngword = <$fh>); if(&ban($Name, \@ngword)) { print "error\n"; } sub ban { my $body = shift; my $word = shift; $body =~ s/(\x0d\x0a|\x0a|\x0d|\n|\s|\x81\x41|\xff)//g; return map { $body =~ /$_/m } @$word; }