回答数
気になる
-
Perl での XML 置換について
perl で XML::LibXML モジュールを使用して下記のようなXMLのテキスト部分の置換をしようとしています。 <item id="1"> <name>hoge</name> <description> テスト<b>テスト</b>テスト </description> </item> <item id="2"> <name>hoge2</name> <description> テスト2<i>テスト2</i>テスト2 </description> </item> これに対して、 for $node ($dom->findnodes('//item/description/text()')){ $text = $node->toString; $text =~ s/.../.../; $node->setData($text); } のように置換する処理を考えたのですが、description の中に <b> や <i> のようなインライン要素があると正しく置換、書き戻しがされません(置換対象は、これらインライン要素の中にも外にもあります)。 これをなんとか正常に動作させる方法はあるでしょうか。 どうぞ、よろしくお願いいたします。
質問日時: 2012/03/21 15:55 質問者: dokuso007
ベストアンサー
1
0
-
画面サイズ取得について
アクセスされた際の端末の画面サイズ取得方法について教えてください。 私の調べた限り、携帯以外では直接サイズを取得できる環境変数もないようなので、その他の方法としてJavascriptを使用して画面のサイズを取得するのが一番かなと思いました。 そこで色々検索したところ、perlで使用された変数をJavascriptで使用するといった内容のページはいくつか見つかったのですが、逆に、Javascriptで取得した変数をperlで使用する方法がなかなか見つかりませんでした。実際そのような事が出来るのかも分かりません。。。 locationで変数を送ればとも思いましたが、今回の場合訳があってlocationが使えないので、その他の方法で何かないかと…。 どなたかそのような方法について分かる方は教えていただけないでしょうか。 出来れば詳しく書き方なども教えていただけるとありがたいです。 よろしくお願いします。
質問日時: 2012/03/20 18:56 質問者: hana43
ベストアンサー
5
0
-
Perlについて
処理速度について質問です。 ファイルを大量(4000~8000程度)に扱う処理でディレクトリ内にあるファイルを 「-f $file」 で検索する処理ありますが、 ファイルが8000あったとして、半分づつディレクトリを分けて検索した場合、 処理速度は変わるでしょうか? ※この処理は 2万~3万回/1日 は実行されます。
質問日時: 2012/03/18 15:50 質問者: dyo
解決済
2
0
-
Perl:ファイル名だけ文字化けする
Perlをいじって2日の者です。 WindowsVistaを使っております。 現在renameを使ってファイル名を変更しようとしています。 現在のファイル名がIDだけで、 Web上にあるそのIDに対応する情報をファイル名に追加しようとしています。 Web上の情報を取得するまではできたのですが、 変数に入れたその情報を、ファイル名に入れようとすると文字化けします。 ただ、その情報をコマンドプロントで扱う時も、テキストへ出力してみても文字化けしません。 文字化けは、文字コードなるものが原因らしいということで、 とりあえずよく見かける「UTF-8」というものにエンコードしてみたところ、 テキストへの出力が、ファイル名へのそれと同様に文字化けしました。 エンコードした上でファイル名に入れようとすると 情報のそのものがないものとして扱われるようになりました。 これはどう解釈すればいいのでしょうか? どうすれば文字化けを解決できるでしょうか?
質問日時: 2012/03/17 12:29 質問者: hijiriki
ベストアンサー
2
0
-
Pealでエラーメール自動処理
Pealでメルマガシステムを作って運用してました エラーメール処理をしたいのですが ユーザーがいない場合などに自動的に削除したいと思います どういう風に作ればよいのか分かりません あればぜひ教えてください
質問日時: 2012/03/14 08:10 質問者: shiro4649
ベストアンサー
1
0
-
Perlについて
<a href='?????' target='_blank'> 上記のような変数から「?????」 部分を取り出すにはどうしたら良いでしょうか? ※「?????」にはいろんな数値が入ります。長さも違う。 また、 href=' ' のシングルクォーテーションは固定です。
質問日時: 2012/03/12 12:45 質問者: dyo
解決済
1
0
-
perl について
変数に半角文字が何文字入っているか調べるにはどうすれば良いでしょうか? ’あ1い2うえ3お’ 上であれば半角文字が3文字入っていることを調べる。
質問日時: 2012/03/11 16:50 質問者: dyo
解決済
2
0
-
perlで読み込むテキストの文字コードは一般に何?
Perl初心者です。 perlで簡単なソフトを作り、時々変化する情報をテキストファイルから読み込むようにしています。 昔は、Shift-jisでしたが、文字化け対策が嫌になり、UTF-8に統一しました。 皆様は、何を使われていますでしょうか? また、読み込みや出力には、そのファイルの文字コード指定していますか? 質問させていただいた動機について(無駄に長いです) 最近パソコン初心者の友達へ、プログラムを作ってあげたのですが、どうもうまく動かない。 設定ファイルに書いてある内容が何か合わないようです。 色々試行錯誤して、3日ほど悩んだ結果、相手のパソコンで編集(Vista)すると、BOMというものが付くことが分かり、とりあえず、それを削除することで無事動作致しました。 UTF-8であれば、文字コードなど気にせず万能だと思っていたのですが、これだけ悩まされると、UTF-8以外の方にもっと良い方法があるのではないかと思い質問させていただきました。
質問日時: 2012/03/11 12:38 質問者: utsumi_ya
ベストアンサー
5
0
-
perl 漢字コードの書き方,エンコーダー?
こんにちは! Perlの漢字コード(UTF8)の扱いについて詳しい方,おしえていただけないでしょうか? 数年前に自作した,ファイル加工用のシェルスクリプトを久しぶりに取り出してみたら,訳が分からなくなってしまいました。 シェルスクリプトは,大きなファイル(文字コードはUTF-8)の中から特定の表現を削って小さくする物で,例えば次のような行が並んでいます。 perl -pe 's/\343\200\220\.*?\343\200\201//g' | \ 困っているのは,文字コードをどうやって決めたか思い出せない点にあります。 新しい記述を足したいのですが,文字コードの指定の方法をすっかり忘れているのに気付いて,呆然としているところです。 以前はネット上にある,どこかのエンコーダーを使ったように記憶していますが。 うまく見つけらずにいます。 ご存じの方,ご教示いただけると大変ありがたいです。。 (試行錯誤して,UTF-8の16進6桁の漢字コードから,2桁ずつとって10進に直す,のは違うらしいことが分かりました。(;^_^A)
質問日時: 2012/03/10 12:40 質問者: vcClv
ベストアンサー
1
0
-
LWPで応答データを取得できない
お世話になります。 perl5でLWPを使用しているのですが、一部のサイトでデータを取得できず困っております。 具体的には my $ua = LWP::UserAgent->new; $ua->agent('Mozilla/5.0'); my $req = HTTP::Request->new(GET => "http://misshiki.blog7.fc2.com/?xml"); my $res = $ua->request($req); my $buf = $res->content; といった感じでRSSを取得したいのですが、$bufが空になってしまいます。 しかし、 $res->as_string とすると、レスポンスヘッダも含めてRSSが取得できていることが確認できます。 また、上記以外のURLでは正常に$res->contentでデータを取得することができています。 どうもFC2ブログのRSSのみの事象のようではあるのですが、対処方法がわからず困っております。 対策をご教授いただければ幸いです。 以上、よろしくお願いいたします。
質問日時: 2012/03/08 22:16 質問者: misshiki
ベストアンサー
1
0
-
perでメールが送信出来ない場合の確認方法
perlで下記のような感じでレンタルサーバーで動かしたところ送信が出来ませんでした。 その場合に、レンタルサーバーなのでsendmailのログも見れないで困っていますので、 原因の確認方法が解ればご教示頂ければ有難いです。 my ( $SENDMAIL ) = '/usr/sbin/sendmail'; open(MAIL, "| $SENDMAIL -t "); print MAIL "From: xxx@xxx.co.jp\n"; print MAIL "To: xxx@xxx.co.jp\n"; print MAIL "Subject: test\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "Content-Type: text/plain; charset=\"ISO-2022-JP\"\n"; print MAIL "\n"; print MAIL "test_letter\n";
質問日時: 2012/03/04 07:20 質問者: misaki777v
解決済
4
0
-
ハッシュのキーの一部に変数(スカラ)を使いたい
formで送られてきたデータは全てハッシュinで整理しています 様々なデータの中に、$in{way_1}, $in{way_2}.....というかたちでformから送っているものがあるのですが、それぞれにvalueがあるのか分からないので、ループをかけて検証したいと思っています if($in{way_1}){ push(@ok, "1"); } if($in{way_2}){ push(@ok, "2"); } ..... とやれば話は早いですが、way_がいくつまであるかが状況によって違うため、最大値までループで確認したいと思っています そこで次のようにやってみましたが、うまくいきません my $i = 1; while($i <= $max){ if($in{way_$i}){ push(@ok, $i); } $i++; } Internal Server Errorが出たのですが、おそらくハッシュのキーの中の一部に変数を入れたがためだと思われますが、これに変わる検証方法はないでしょうか? ちなみにあたりまえですが、次のようにやってみても、単なる文字列として認識されてしまうので、うまくいきませんでした my $i = 1; while($i <= $max){ $temp = '$in{way_'.$i."}"; if($temp){ push(@ok, $i); } $i++; }
質問日時: 2012/02/29 14:26 質問者: choei
ベストアンサー
1
0
-
複数の比較( =~ )を効率よくまとめたい
アクセス端末によって見え方を変えさせるため、条件節ifで =~ を使って分岐させているのですが、ユーザーエージェントがあまりにも多く、コードが長くなりすぎ制作に支障が出てきています 100%完璧に分岐させるところまでは求めていないため(アクセスの95%程度うまく分けられればいいかと思ってます)、たとえばスマホの場合はiPhoneとかAndroid、PCの場合はMSIEなど極力共通の部分を見つけてまとめてはいますが、それでも携帯、スマホ、PCと分けると非常に多くなり、 if(($ENV{'HTTP_USER_AGENT'} =~ /MSIE/) || ($ENV{'HTTP_USER_AGENT'} =~ /Firefox/)){} など比較の片方は同じなのに同じことを何度も書く必要があり、非効率かつ強烈に長くなってしまい何とかまとめられないかと格闘しています たとえば別で $os_pc = "MSIE,Firefox"; $os_mb = "DoCoMo,KDDI"; など別でまとめて、 if($ENV{'HTTP_USER_AGENT'} =~ /$os_pcの,で分解したそれぞれの文字列と比較/){ PCと判定 }elsif($ENV{'HTTP_USER_AGENT'} =~ /$os_mbの,で分解したそれぞれの文字列と比較/){ 携帯と判定 } といったように、スマートに条件分岐させられないかと模索中ですが、=~ で別で用意したデータを,で分解してそれぞれと比べるとかできないでしょうか。 =~での比較ではなく、他の方法でもかまいませんので、ぜひお知恵をお貸しください。 よろしくお願いします。
質問日時: 2012/02/25 18:35 質問者: choei
ベストアンサー
4
0
-
perl コンストラクタへの引数
いつもお世話になっております。 コンストラクタへ引数を渡しsyntaxチェックを行うとエラーとなります。 ご教授願えないでしょうか。 ※Perlは一昨日から初めてです。 [エラー内容] sample.pm: Bareword "SAMPLE_LOG" not allowed while "strict subs" in use at sample.pm line 278. [sample.pm] package sample lib ../common/ use Log.pm my $log = Log->new(SAMPLE_LOG); [Log.pm} package main use constant SAMPLE_LOG = 'sample.log'; 定数を定義しているのですが・・・・
質問日時: 2012/02/22 18:25 質問者: prr4e
解決済
6
0
-
動作中のCGIのソースを公開したい
自分のサイトにて自作のCGIを用いたシステムで閲覧者からの投稿を受け付けています。 暗号化が必要な情報はcryptを用いたり、アクセス情報は極力収集しないようにしているのですが、一部の利用者から不安の声が上がりました。 出来ることならソースコードを見せたいのですが、別ファイルとしてアップロードをすると動作中のCGIと同一のものであるというのを証明するのが難しくて悩んでおります。 「動作中のCGIのソースをそのまま見せる」、あるいは「動作中のCGIと同一のソースであることを証明する」といういずれかを実現したいです。 CGIのソースを見せたくないとか見たいという質問は過去に多くあったようですが、見せたいという質問は見当たらず質問させていただきました。 なるべく早く回答していただけると幸いです。 よろしくお願いします。
質問日時: 2012/02/16 16:51 質問者: otakanomori
解決済
3
0
-
Perlで use strict して our変数
Perl 初心者です。初めて質問します。 test_sub.pl で宣言した変数を test_main.pl から参照したくて悩んでいます。 環境 : WindowsXP / ActivePerl 5.14.2 -------------------- * test_sub.pl -------------------- #!/usr/bin/perl use strict; our $hoge = 'HOGE'; 1; -------------------- * test_main.pl -------------------- #!/usr/bin/perl use strict; require 'test_sub.pl'; print "Content-type: text/html\n\n"; print $hoge; -------------------- これを実行すると、 Global symbol "$hoge" requires explicit package name at C:/public_html/cgi-bin/test_main.pl line 7.\r というエラーが出ます。 require する前に、test_main.pl のほうで our($hoge); と宣言したり 参照する際に print $main::hoge; とパッケージを指定したりすればいけるのですが、 これらをしないとできないものなのでしょうか。 use strict; を書かなければ最初のソースでも動くのですが use strict は書きたい… 継承のようなことをしたいのです。 ちなみに以下試してみたソースです。 -------------------- * test_main.pl -------------------- #!/usr/bin/perl ######################################## # NG use strict; require 'test_sub.pl'; print "Content-type: text/html\n\n"; print $hoge; ######################################## # OK our変数を宣言しておくといける =pod use strict; our ($hoge); require 'test_sub.pl'; print "Content-type: text/html\n\n"; print $hoge; =cut ######################################## # OK 参照する際にパッケージ名を指定すればいける =pod use strict; require 'test_sub.pl'; print "Content-type: text/html\n\n"; print $main::hoge; =cut ######################################## ######################################## # NG =pod use strict; use base qw(test_sub); print "Content-type: text/html\n\n"; print $hoge; =cut ######################################## -------------------- * test_sub.pm -------------------- #!/usr/bin/perl package test_sub; use strict; our $hoge = 'HOGE'; 1; -------------------- NG パタンはどちらも Global symbol "$hoge" requires explicit package name のエラーとなります。 もしご存じの方がいらっしゃいましたら教えてください。 よろしくお願いします。
質問日時: 2012/02/16 14:41 質問者: aki04
ベストアンサー
1
0
-
削除する記事が存在しない場合の処理
投稿すると自動的にその投稿に対して記事番号なるものが割り当てられ、 その記事番号と自分で投稿時に決めた削除パスワードで 自分の投稿を削除する形式の掲示板なのですが パスワードや記事番号が入力されていない場合には 〇〇〇が入力されていませんと表示されるにもかかわらず 存在しない記事番号が入力して削除しようとすると 「正常に削除いたしました」と表示されてしまいます。 (実際には存在しない記事番号なので何も削除されていないのですが) そこで下記のようにの#~#の部分を追加で記述し、 記事番号が存在しない場合にエラーとなるようにしてみたのですが これで本当にいいのか正直不安なのです。 正しいかチェックしていただけませんか? @new=(); open (IN,"$file") || error("システムエラー","ファイル「$file」を開くことができません。"); while($data = <IN>) { $flag=0; ($no,$res,$date,$cntr,$email,$tall,$weight,$age,$sub,$com,$live,$select,$photo,$pw) = split(/<>/,$data); if ($FORM{'pass'} eq "$ad_pass") { foreach $del (@DEL) { if ($no eq "$del") { $flag=1; last; } } } else { if ($FORM{'del'} eq "$no") { if (!($pw)) { &error("入力エラー","指定された記事には削除キーが設定されていません。"); } if (crypt($FORM{'pass'},$pw) ne "$pw") { &error("入力エラー","パスワードが間違っています。"); } $flag=1; } #記事番号が存在しない時、エラーを表示追加 if ($FORM{'del'} ne "$no") { if (crypt($FORM{'pass'},$pw) ne "$pw") { &error("入力エラー","記事番号が存在しません。記事番号を確認して入力し直してください。"); } } #ここまで } if ($flag == 0) { push(@new,$data); } } close (IN);
質問日時: 2012/02/11 00:20 質問者: masa-25
ベストアンサー
1
0
-
utf-8のコードを使いたい
素人で大変申し訳ございません。 他の人が作ったPerlを改良しようと思っております。 仕様は、csvのカンマからカンマの間に入っている 文字を取得するというのですが、 英数字の場合は、正常に取得できるのですが、 半角ひらがなが入ると文字の取得ができません。 下記の$outputで、私が必要な情報を得ようと思っているのですが、 下記の右辺をどのように変えれば、半角ひらがなも取得できるでしょうか? $output =~ s|/\*\s(([A-Z0-9_])+)\s\*/|$D->{$1}|g; ※エンコードが必要でしたら、utf-8を使いたいと思っています。 一部分の大変失礼な質問と思いますが、何卒よろしくお願い致します。
質問日時: 2012/02/09 21:45 質問者: kgyqk433
ベストアンサー
8
0
-
どっちが使われたか分かるように
投稿を削除した際に 管理者パスワードで削除されたのか それとも投稿者が設定したパスワードで削除されたのか 追加で削除ログに記録したいと思ってます。(削除ログはすでにあります) 削除パスワード入力フォームを$FORM{'pass'}とし、 管理者パスを$owner_pass 投稿者が設定した削除パスワードを$pw とした場合、どっちのパスが使われたのか分かるようにするには どのように記述したらいいのでしょうか? 管理者パスが使われたら管理者、 投稿者パスなら投稿者と削除ログに記録したいのですが、 いろいろやってみたのですがなかなかうまくいきません・・・。
質問日時: 2012/02/09 11:12 質問者: masa-25
ベストアンサー
2
0
-
Web系企業へ転職するにはどうしたら良いですか?
日本の総合電機メーカー(F,N,Hのうちの1社)に勤める社会人1年目です。 グリー、DeNA、サイバーエージェントなどのWeb系企業へ プログラマとして転職したいのですが、どうすれば良いのでしょうか? 会社ではJavaでミドルウェアを設計・開発しています。 ちなみにアジャイル開発です。 ・Java デザインパターンや並列処理プログラミングまでは理解した程度 Javaによるネットワークプログラミングを勉強中 ・C言語 ポインタで困ることはなくなった mallocして線形リストや二分木を使った実装も大丈夫 ・C++ STL、テンプレートの基礎までは理解 ・Unix/Linuxの基礎 基本的なコマンドは知っている grepとかパイプとかシンボリックリンクは分かるし シェルスクリプトもリファレンスを見ながらなら一応は書ける ・英語 TOEIC780点 こんな感じなんですが、 グリー、DeNA、サイバーエージェントなどのWeb系企業の 経験者採用の募集要項を読むと、必須とされている条件が 私の業務経験や現状の知識とはうまくマッチしません。。 (Webアプリ開発の業務経験が必須だったり、独学では埋めることができない) 独学で学べることなら何でもやりますし、 転職まで今後半年間ほど今の会社に勤めながら うまく転職できるようにプログラミングの勉強をしようと思っています。 そこで質問したいのは、以下の3つです。 どれかひとつでも良いので教えてください。 1. グリー、DeNA、サイバーエージェントへプログラマとして転職できる 可能性はありますか?可能だとすれば具体的にどうすれば良いですか? 何を学べば転職に有利ですか? 2. 私のような経歴の場合、グリー、DeNA、サイバーエージェントなどよりも もっと他に転職するのに有利な企業はありますか? (条件としてはプログラマとしてもっと高度なことがやりたい、収入を増やしていきたい) 3. その他なんでも良いのでご意見をうかがいたいです。
質問日時: 2012/02/09 01:59 質問者: ziroziro26
解決済
2
0
-
XML::RSS文字コード統一の仕方がわかりません
perl初心者です。 rssを取得して簡易ブログパーツをつくりたいのですが文字コードでうまいこといかず悪戦しています。 以下がコードです。(きたなくてすいません…) #!/usr/bin/perl use LWP::Simple; use XML::RSS; use utf8; use open ":utf8"; $logfile="./syoukai.log"; open(DAT, "$logfile"); @log=<DAT>; close(DAT); my $rss = new XML::RSS; @list = (); foreach(@log){ ($nom,$name,$prof,$xml,$btitle,$ktitle,$klink)=split(/<>/); eval { $rss->parse( LWP::Simple::get($xml) ); }; if($@) { next; } $btitle = $rss->{'channel'}->{'title'}; $prof = $rss->{'channel'}->{'link'}; $item = $rss->{'items'}; $line = @{$item}[0]; $ktitle = $line->{'title'}; $klink = $line->{'link'}; $date = $line->{'pubDate'}; push(@list, "$date<>$name<>$prof<>$xml<>$btitle<>$ktitle<>$klink<>\n"); } open(IN,">$logfile"); print IN @list; close(IN); exit; syoukai.logを呼び出して そこに書かれたxmlを順番に読み込んで ファイルを更新したいのですが これだと何もいじっていない$nameは大丈夫なんですが $btitleや$ktitleが文字化けしてファイルに書かれてしまいます…。 use utf8;ではなく use encoding 'UTF-8', STDOUT => 'cp932';としたら 今度は$nameだけ文字化けしてしまいます。 別々の文字コードを一緒にしてしまってるからだと思うのですが どれがどの文字コードなのかがわからないでいます。 文字コードを統一する方法などがあれば教えてくださいm(__)m 説明&記述ヘタですいません…。 宜しくお願いします。
質問日時: 2012/02/04 15:50 質問者: hasegawamugen
解決済
1
0
-
ファイル書込時にPermission denied
QRコードを生成してファイルに保存するプログラムを作っています。 ファイルハンドルをオープン時にエラーがでます。 open OUTFILE, '>', 'C:\inetpub\wwwroot\test.jpg' or die "$!"; # ここでエラーがでます。 binmode OUTFILE; print OUTFILE $qrimg->plot->jpeg; close OUTFILE; エラーメッセージは 「指定された CGI アプリケーションは、正しく動作しませんでした。HTTP ヘッダーの完全なセットが返されませんでした。返されたヘッダーは "Permission denied at C:\inetpub\wwwroot\cgi-bin\qr.cgi line 24. " です。」 です。 環境は Windows 7 / IIS 7.5 / ActivePerl 5.14.2 です。
質問日時: 2012/02/02 14:16 質問者: ab-bz
ベストアンサー
1
0
-
さくらのレンタルサーバーのcpanmについて
さくらのレンタルサーバーのcpanmで、 JSONだったりUnicode::RecursiveDowngradeといったモジュールは入るのですが、 Email::Senderなどのモジュールがうまくインストールできないです。 --forceオプションも試してみたのですが、やはりうまくいきません。 どうか解決策をご教授ください。よろしくお願いします。
質問日時: 2012/01/31 15:55 質問者: base64
ベストアンサー
1
0
-
並列処理について
今現在Perlの並列処理について勉強しているのですが、分からない点があるのでご教授願います。 重並列が可能となるプログラムを作りたいと思い、以下のプログラムを作成しました。countには並列数(例えば3並列にしたいならば3)が入っています。これで重並列ができたと思ったのですが、よくよく考えてみると、このプログラムだと一つ目の子プロセスが終わらなければ、二つ目、三つ目の子プロセスが始まらないということに気付きました。同時に複数のプロセスを実行させるにはどのようなプログラムにすればよいでしょうか。お願いします。 while($count--){ $pid = fork; if(!defined $pid){die "fork failed";} elsif(!$pid){ &process;#子プロセス exit; } } wait; ・・・・・・#親プロセス
質問日時: 2012/01/30 12:17 質問者: nonidname
解決済
4
0
-
パイプ処理の結果は利用可能?
今現在Perlの勉強をしているところなのですが、詰まってしまったのでアドバイスをいただきたいです。あるPerlプログラムで作成したファイルを、そのプログラム内でパイプ処理し、その結果を再びそのプログラム内で利用したいと考えています。例えば以下のようなプログラムPは作成可能でしょうか、可能であればその方法を教えていただきたいです。サンプルコードなどがあれば幸いです。 プログラムPの概要 あるファイルを作成する→そのファイルを別のプログラムで実行(結果は○か×を出力)→結果が○であれば再びファイルを作成する、結果が×であればプログラム終了
質問日時: 2012/01/29 17:09 質問者: nonidname
解決済
2
0
-
Perlにこのようなことはできるのでしょうか
質問させていただきます 最近ちょっとcgiに触れているのですが、perlには次のようなことは可能なのでしょうか 可能ならばもう少し勉強して実際にそういった動きをするcgiを作ってみたく思っています 1.テキストボックスにUrlを入力してもらう 2.送信ボタンが押されたらUrlを参照して対象のページの内容を見にゆき、 3.その中を文字列検索して欲しい情報を持ってきて、表示する cgiに「できること」は様々なページに載っていたのですが、「できないこと」はさすがに載っておらず 2.の部分ができるのかできないのかがよくわかっておりません cgiで可能なのかどうか、もし不可能ならばそういった動作を行うのによいのはどんな言語なのか というのをご返答いただければと思います。
質問日時: 2012/01/25 22:29 質問者: WatchGoo
解決済
1
0
-
引数の値をURLのパスに配列として代入
■1.下記の1.cgiからURLに引数として 1.cgi?hoge=●● で2.cgiにhogeの値を送ります。 2.cgiでhogeの値を受け取り、 テンプレートファイルを表示の際に下記のように、 ファイルのパスに取得したhogeを指定しようと思いますがうまく動作しません。 具体的な指示の仕方をご教示いただけないでしょうか? 宜しくお願いいたします。 my $hoge1 = '../../htdocs/●/●/●/'; my $hoge_2 = $hoge; my $hoge_ok = '$hoge1/$hoge2'; $template = $hoge_ok;
質問日時: 2012/01/24 21:37 質問者: sdzgq
ベストアンサー
5
0
-
並列処理、fork、threadについて
別カテゴリにて質問を載せてしまったので、再度質問させていただきます。 今現在perlの勉強をしており、あるプログラム(Xとします)を作ろうと考えています。 Xの簡単な内容は、以下の通りです。 1.ファイル(Aとします)を別のテキストファイル(Bとします)を元に作成する→AをBを元に更に編集(作成したものをA'とします)→A''を作成→・・・・・・ 2.(Aが作成されるのを待って)Aをあるプログラムにて実行→(A'が作成されるのを待って)A'をあるプログラムにて実行→・・・・・・ 1.2.を並行して行う。(何並列にするかは、Xを実行時に決める) 例えば3並列にする場合は、Aを作成、A'を作成、Aを実行→A''を作成、A'''を作成、A'を実行→A''''を作成、A'''''を作成、A''を実行→・・・・・・という具合にしたいと考えています。 以上がXの内容なのですが、この並行して行うというのがなかなかできません。調べてみると、fork、threadなどの方法があるようですが、どうしても上手くいきません。助言をお願いします。可能であれば、簡単なサンプルコードなどを教えていただけたら幸いです。
質問日時: 2012/01/24 07:29 質問者: nonidname
解決済
1
0
-
CGI掲示板アップロード、403エラー
WEBサイト製作初心者のものです。 Perlで作られたフリーの掲示板をダウンロード、 借りたレンタルサーバーにcPanelをつかってCgi-bin にアップロード。 このようにすれば、レンタルサーバーにアクセス、 Index of のcgi-binを選択すれば、掲示板が表示されるはずですが 403 アクセス権のエラーと表示されてしまいます (cPanel付属のCRMソフトはインストール後Index ofから選択すれば正常に表示されます) 3つの条件 Perlのバージョン、アップロード先ディレクトリ、 フォルダごとのパーミッション設定は、推奨設定どおりになってます。 どうしてこのエラーが出るのでしょうか?
質問日時: 2012/01/23 23:52 質問者: ridi8888
ベストアンサー
1
0
-
perlのprint文がうまく動きません
perlの勉強を始めました。 perlの本の最初に Hello.plというファイルに print”Hello!”;と記述して perl Hello.plとすると画面にHello!と表示されるとあるのですが、何も表示されません。 ファイルの記述をprint ”Hello!\n";としてやるとHello!と一応表示されるのですがなぜ改行が必要になるのかがよくわかりません。どのように理解すればいいのでしょうか?
質問日時: 2012/01/23 13:08 質問者: HETERO
解決済
3
0
-
特定の文字列が含まれているかどうか確認したい
文字列 $a に、文字列 $b が含まれているかどう確認したいと思っています。 $a = "abcdefg"; $b = "cde" なら「真」としたいです。 (要するに、シェルの case や fgrep に似たことをしたい) ただし、文字列には記号が含まれている可能性もあるため、 正規表現も使いづらい(?)です。 具体的にやりたいことは、$a にはコンマ区切りのメールアドレスのリストが入っていて、 $b のメールアドレスが $a のリストに含まれていない場合のみ、$b を $a似追加すると いうことがやりたいです。 何か良い方法はないでしょうか? よろしくお願いいたします。
質問日時: 2012/01/20 18:50 質問者: entree
ベストアンサー
3
0
-
perl ハノイの塔の解に順番付けする方法
プログラミング初心者です。 サブルーチンを用いて、ハノイの塔の解を求める課題で詰まっています。 解自体は求めることができたのですが、それぞれの解の順番(輪を移動させる順番)を一緒に表示させよという指示が出ており、この方法がわかりません。 表示順に上から番号を振るという考え方でよろしいのでしょうか。 まず考え方自体が違うようであれば、そこから指摘して頂きたいと思います。 よろしくお願いします。 ちなみに現状ではこのようになっております。 #!/usr/bin/perl sub hanoi { my ($no , $x , $y , $z) = @_; if( $no = $no){ hanoi ($no-1,$x,$z,$y); print "Move", $no ,"from" , "$x" , "to" , "$z" , "\n"; hanoi ($no-1,$y,$x,$z); } } print"入力された枚数のハノイの塔の解(順番付き)\n"; $data=<>*1; hanoi($data , "A" , "B" , "C");
質問日時: 2012/01/19 17:45 質問者: iwashi0830
解決済
2
0
-
配列中にあるデータの最大値を求めたい
BBSを改変したエントリーフォームで、 アンケート付のイベント参加集計をしています。 設置者が居なくなってしまったため引き継いでいるのですが、 力不足で行き詰まっています。お力をお貸し下さい。 1.現状 入力項目は50個ほどあり、データファイルには、 1行目にデータ項目、2行目以降に入力データが追加されていきます。 例)データ形式 申込日時,イベント名,,,,受理番号,,その他(改行) 20120117,ハイキング,,,,20120505001,,特になし(改行) 2.やりたいこと 管理の都合上、受理番号を発行させたいのですが、 既参加者に発行した受理番号の最大値の取得方法が分かりません。 受理番号はイベント毎に初期値を設定し、連番にしていきます。 例)1人目…20120505001 (初期値) 2人目…20120505002 (上8桁の20120505をイベントコードとし、下3桁が連番) 受理番号項目が入力項目50個の45番目にあったとして、 1人目はあらかじめ設定してあった初期値を入力、 2人目以降は受理番号の最大値をはじき出し、最大値+1を入力 という処理をしたいのです。 ※受理番号の入力位置は45番目がベストですが、 処理が複雑になるようなら、先頭でも末尾でもかまいません。 よろしくお願いします。
質問日時: 2012/01/17 13:19 質問者: jm2nze
ベストアンサー
3
0
-
外部サイトの更新情報を取得 してサイトに表示
どのカテで質問するのが適切かと考えたんですが、プログラムに詳しい方なら分かるのではと思いこのカテで質問します。 下記のサイトではブログやサイトの更新情報を取得し日付順に表示しています。 http://soccer.phew.homeip.net/ RSSフィードを配信しているブログなどはまだ分かるのですが、配信していないサイトなどの更新情報も取得し表示しています。 私のサイトもリンクをお願いしているのですが、更新すると30分以内には反映されます。ただブログのように更新した内容(記事名とサイト名)ではなく更新日時とサイト名が表示されるだけです。 私のサイトもTOPページに毎回手打ちで入力してる更新情報(インラインフレーム)を表示するようにしているのですが、RSSフィードは配信していません。 何回か試してみて分かったのですが、この更新情報を記述しているファイルが更新されると自動的に日時やサイト名を取得して表示しているようです。 更新情報は下記のように記述しています。 <a href="更新したファイルのURL" target="_blank">○○更新</a> 調べてみたら更新情報を記述したファイルからRSSフィードを作成する下記サイトのようなサービスもあるそうですが、私のサイトではできませんでした。 http://rssc.dokoda.jp/ そこで質問なのですが、このサイトはどうやって私のサイトの更新情報を取得しているのでしょうか? 他人のサイトの一ファイルが更新された事を取得する方法ってあるのでしょうか? ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。
質問日時: 2012/01/15 04:06 質問者: KEN1159
解決済
1
0
-
返信フォームで親記事のデータを読み込みたい
また、Perlでわからないことがあるので教えてください。 http://oshiete.goo.ne.jp/qa/7239724.html と似たようなことなのですが、別件なので新しく投稿させて頂きます(^^; 投稿フォームについてなのですが、 「レス記事を書く時に、親記事のデータを引用したい」(「Re:タイトル」等)と思っています Joyfulを、こちらのサイトの方が改造したもので、 http://www.minicgi.net/cgi2/joyful.html その時点では、タイトルなど引用できていたのですが、 更にそれを、私が人に依頼して改造して頂いた(有償でネット上の方に)ので 親記事の引用ができなくなってしまいました; お分かりの方、修正方法を教えて頂けたら凄く助かります!! サーバー:さくらのスタンダード。「Perlのバージョン5.8.x」 PC:Windows7 ★━━━━━━━━━━━★ ■Perl local($type,$no,$reno,$date,$name,$mail,$micon,$a1,$a2,$a3,$a4,$a5,$apass,$sub,$com,$url,$host,$pw,$color,$color2,$hyde,$plogNo) = @_; local($cnam,$ceml,$cmicon,$ca1,$ca2,$ca3,$ca4,$ca5,$capass,$curl,$cpwd,$cico,$ccol); # 返信 if ($type eq "res" || $type eq "new_html") { if ($res_clip) { print "<form action=\"$script\" method=\"POST\" enctype=\"multipart/form-data\">\n"; } else { print "<form action=\"$script\" method=\"POST\">\n"; } print "<input type=hidden name=mode value=\"regist\">\n"; print "<input type=hidden name=reno value=\"$in{'no'}\">\n"; ($cnam,$ceml,$cmicon,$ca1,$ca2,$ca3,$ca4,$ca5,$capass,$curl,$cpwd,$cico,$ccol,$ccol2,$chyde) = &get_cookie; }~~~~~~~~・・・ ★━━━━━━━━━★ ■データの中身(仮)こんな感じでデータが入っています。 5<>IP<>1234567890<> 3<><>2012/01/12(Thu) 08:42<>ウサギ<>Yahoo<>~・・・ 5<>3<>2012/01/12(Thu) 09:04<>ネコ<><>~・・・ 1<><>2012/01/12(Thu) 08:41<>イヌ<>Google<>~・・・ 2<>1<>2012/01/12(Thu) 08:41<>ウサギ<><>~・・・ 4<>1<>2012/01/12(Thu) 09:03<>タヌキ<><>~・・・ 一番上に、最新の記事の情報 頭から2番目のデータは、親記事の番号 (ネコはウサギの返信記事)
質問日時: 2012/01/15 00:28 質問者: monica_panda
解決済
1
0
-
数字を1桁なら半角、2桁以上は全角にしたい
表示したい数字が1桁もしくは2桁でHTML表示を等幅指定で合わせたいので 数字を1桁なら半角、2桁以上は全角にしたいと思っています。 下のように記述して、思い通りの動きはしているのですが もう少しスマートに記述できればと思い質問させていただきます。 みなさんなら、どう記述するか、ご教示ください。 $no = 1; # 1桁の場合、半角から全角にする if ($no == 0) { $no2 = "0"; } if ($no == 1) { $no2 = "1"; } if ($no == 2) { $no2 = "2"; } if ($no == 3) { $no2 = "3"; } if ($no == 4) { $no2 = "4"; } if ($no == 5) { $no2 = "5"; } if ($no == 6) { $no2 = "6"; } if ($no == 7) { $no2 = "7"; } if ($no == 8) { $no2 = "8"; } if ($no == 9) { $no2 = "9"; } if ($no >= 10) { $no2 = "$no"; } print "$no2";
質問日時: 2012/01/14 13:51 質問者: mcroo
ベストアンサー
3
0
-
CANDY CGIのRSSリーダー
現在サイトを開設しているのですがそこのTOPページで下記のRSSリーダーを利用し外部サイトのRSSを読み込んで表示させたいのですが、なかなか上手くいきません。詳しい方なら何か分かるのではと思ってのでこちらで質問します。 http://www.candy-cgi.com/perl/RSS_reader_Type1.html 一度PHPのスクリプトは設置した事あるのですが、Perlは初めてです。 サーバーはロリポップでコロリポプランです。 私がやった事は (1)上記のサイトからスクリプトをダウンロードしてきて解凍し、index.cgiを開いて設定箇所を変更しました。 パスはサーバ指定のパスと同じだったのでいじっていません。 表示させたいファイルと同じディレクトリに上記サイトからダウンロードしてきた『RSS』というフォルダがありその下にindex.cgiやlog.cgi、style.cssのファイルがあります。 (2)表示させたいファイル(index.shtml)に下記のソースを記述。 <iframe src="./rss/index.cgi" title="rss" scrolling="yes" width="500" height="100"> <a href="http://www.candy-cgi.com/">CANDY CGI</a> </iframe> (3)サーバーにアップロード。 パーミッションを設定。 これで確認してみると500エラーになっています。 このスクリプトはJcode.pm、FeedPP.pmを使用するらしいのですが、これがサーバで用意されてるのかはどこで確認すればいいのでしょうか?ロリポップの掲示板で初めから用意されてるような回答があったので準備はしていないのですが。 表示させたいページがSSIを使用しているから?とか、.htaccessファイルに記述しているのが引っかかっているのか?とかフォルダにもパーミッションを設定しないといけないのか?など素人なりに考えたのですが皆目見当もつきません。 ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。
質問日時: 2012/01/12 14:49 質問者: KEN1159
ベストアンサー
1
0
-
掲示板で親のデータを子に反映させる方法
スミマセン。基本だと思いますが、教えてください。 Joyful系の掲示板のファイルなのですが、 各記事の親記事にある特定のデータを、 取り出す方法を教えて下さい。 5<>IP<>1234567890<> 3<><>2012/01/12(Thu) 08:42<>ウサギ<>Yahoo<> 5<>3<>2012/01/12(Thu) 09:04<>ネコ<><> 1<><>2012/01/12(Thu) 08:41<>イヌ<>Google<> 2<>1<>2012/01/12(Thu) 08:41<>ウサギ<><> 4<>1<>2012/01/12(Thu) 09:03<>タヌキ<><> こんな感じで、データが記入されるdatファイルがあります。 「1のレスが2・4」「3のレスが5」です。 それで、親記事に「Yahoo」や「Google」というデータが入っているので、 親記事1にレスしてる2・4でも、 親記事に入ってる「Google」といった文字を反映したいのです。 うまく伝えられ無いので、画像にしてみましたので見てやって下さい。 私が見てるプログラムでは、 レスはレスで、「Google」等の文字を探してしまっているので、望む形にならないのです; どうぞ、よろしくお願いします! ↓ざっくり。この辺りの最初の方に、親だけ読み込んで、$search1 とかに、セットできないかと考えています。 ★━━━━━━━━━━━━━━━━━━━━★ local($ipt,$wh,$i,$flag); # 記事を展開 open(IN,"$logfile") || &error("Open Error : $logfile"); $top = <IN>; $i=0; $x=1; $flag=0; # ソート無し:必要最小限だけ読み込み if(!$sort && !$threadsuu){ while(<IN>){ if((split(/<>/))[1] eq "") { $i++; } if ($i < $page + 1) { next; } if ($i > $page + $p_log) { next; } push(@DATA,$_); } } # ソート無し、スレッド表示有り elsif(!$sort && $threadsuu){ @DATA = <IN>; } # ソート有り:全データを読み込んでソート実行 else{ @DATA = <IN>; if($sort == 1){ &ressort; } if($sort == 2){ &nosort; } } close(IN); # 新着スレッドを表示 if($threadsuu || $up_down){ &thread; } # レスの表示制限をする場合には、配列を改造 if($max_res){ &omit; } foreach(@DATA){ ($no,$reno,$date,$name,$mail,$search) = split(/<>/); # ページ処理 if($sort || $threadsuu){ if ($reno eq "") { $i++; } if ($i < $page + 1) { next; } if ($i > $page + $p_log) { next; } } if (!$reno && $flag) { print "</td></tr></table><br><br>\n\n"; $flag=1; } if (!$reno) { print "<table class=\"table1\" align=\"center\" cellspacing=0 cellpadding=2>\n<tr><td>"; $flag=1; } if ($reno && $line_color) { print "<hr noshade size=1 width='85%' color=\"$line_color\">\n"; } print "<table width=100% border=0 cellpadding=2 cellspacing=0>\n<tr>"; if ($reno) { print "<td rowspan=2 width=40><br></td>"; } if($line_color){ print"<td>"; } elsif($reno){ print"<td class=\"b2\">"; } else{ print"<td class=\"b1\">"; } if (!$reno) { print "<span class=\"sub\"> <font color=\"$t_color\"><b>$sub </b></font></span>";} else { print "Re:<font color=\"$t_color\"><b>$sub </b></font></span>";} if($search == "yahoo"){ print "投稿者:<span class=\"name\">$name</span> yahooで検索";} elsif($search == "google"){ print "投稿者:<span class=\"name\">$name</span> Googleで検索";} else{ print "投稿者:<span class=\"name\">$name</span> その他で検索";}
質問日時: 2012/01/12 10:05 質問者: monica_panda
ベストアンサー
3
0
-
バイト列の定義について
データの文字数を一定の数字で省こうと思い下記の内容を参考にしようと思っているのですが 下記はUTF-8用なので、SJISに対応させるにはバイト列の定義を変更すれば良いのですが どのように変更すれば良いのは分かりません。 my #str = "あいうえおかきくけこさしすせそ"; # 元の文字列 my $view = 10; # 10文字まで表示し後は省略 print &main::round_utf8($str,$view); sub round_utf8 { my ($str,$view) = @_; my $one = "[\x00-\x7F]"; # 1バイト文字 my $two = "[\xC2-\xDF][\x80-\xBF]"; # 2バイト文字 my $three = "[\xE0-\xEF][\x80-\xBF]{2}"; # 3バイト文字 my $bigger = "[\xF0-\xF7][\x80-\xBF]{3,}"; # 4バイト以上 $str =~ s/^(($one|$two|$three|$bigger){$view}).+/$1.../g; return $str; } 私が考えているのは$****に入っている文字列を10文字以降は..で省略させることです。 アドバイスのほどをどうか宜しくお願いします。
質問日時: 2011/12/28 06:41 質問者: mutu19730808
ベストアンサー
2
0
-
プログラム/perl カウントについて
プログラム初心者です. 現在,プログラムの書き換えを行っているところです. (言語はperlです 以下のプログラムのnextの前に, 「$bbをカウントし, $bbが2回出てきたらlast」 というプログラムを書きたいと思っています. ------------------------ if($honbun =~ /$boundary/) { $bb++; if($bb >=2) { last; } next; } ---------------- カウントする変数を使うべきだと思うのですが,どのようにすればいいでしょうか; 初心者質問で申し訳ないです.
質問日時: 2011/12/27 01:21 質問者: sukekkoooo
解決済
3
0
-
ファイルから文字列(英単語)を比較して数える
現在perlを勉強中の身です。 1行に1英単語があり、それが100~200行に渡ってあるファイルがあります。 このファイルの単語に重複しているものはありません。Xとします。 また別のファイルにも同様に1行に1英単語があり、それが100~200行に渡ってあるファイルがあります。 このファイルの単語は重複しているものがあります。Yとします。 当然、最初のファイルにある単語もない単語もあります。 ファイルXから単語を読み取りYでその単語が何回出現したかチェックして単語と出現回数を出力するようなプログラムを組みたいと考えています。 参考書やインターネットで調べたところ、単語を数えるプログラム等はあるのですが、ファイルを読み込みさらにファイルを読み込んで比較する、といった流れのプログラムを見つけることができませんでした。 遠回りな考え方だと 例えば ファイルX a b c d(本当は単語間は改行があり1行1単語なのですが、見やすさのためにこのように表記しました。) ファイルY c c d e f とあった場合まず二つのファイルを結合し ファイルZ a b c d c c d e f として二回以上出現した単語のみを抜き出し ファイルZ' c 2 d 1 (この時出現回数を-1回する) としてファイルXと結合して出現回数を足して-1すると ファイルX' a 0 b 0 c 2 d 1 のようにできるのではないかと考えてはいます。しかし遠回り過ぎてスマートではないように感じます。 どのような考え方、そしてどのようなプログラムを組めばよいのでしょうか。ご教授お願い致します。
質問日時: 2011/12/26 16:10 質問者: peti-n
ベストアンサー
5
0
-
perlプログラムについて
前回の質問で補足すればよかったのですが,ミスしてしまったので^^; 同じような質問ですがもう一度・・・ (プログラム初心者です) 「もし,aaaという文字列が2個以上存在する時は,最初のaaaを使う」 を, perl で書きたいと思っております.書いてみたものは以下です. ----------- if (aaa >=2) { 最初のaaaを使う } ----------- いろいろと間違えてそうですが... 「最初のaaaを使う」 という表現がわかりません>< 間違い・こうしたほうがいいよ などありましたら御願いします!
質問日時: 2011/12/26 12:31 質問者: sukekkoooo
ベストアンサー
2
0
-
行指向処理でデータの読み込みについて(@_)
perl初心者です。 ファイルからデータを読み込んで3列目の要素を取り出すプログラムを作ろうと思っています。 その途中の勉強段階で参考書に $,=','; $\="\n"; @ARRAY=(); while(<>){ chop; split; @ARRAY=(@ARRAY, [@_] ); } print @ARRAY; foreach (@ARRAY){ print @$_; } print $ARRAY[1][2]; というプログラムがありました。このプログラムの大まかな意味は理解できます。 しかし、読み込ませるファイルを 1 2 3 4 5 6 7 8 9 のようにして コマンドプロンプトで実行してみると ARRAY(0x198b9c),ARRAY(0x198998),ARRAY(0x19a830) となり、参考書で紹介される結果の ARRAY(0x198b9c),ARRAY(0x198998),ARRAY(0x19a830) 1,2,3 4,5,6 7,8,9 6; となりませんでした。色々調べたんですが、どうやら print @_; に反応(?)してくれてないみたいです。 私の使用しているPCはwindows7です。原因がわからず先に進めない状況です。指導お願い致します。
質問日時: 2011/12/26 03:29 質問者: peti-n
ベストアンサー
3
0
-
if文で、上手く表示されない
お世話になります。 PerlのBBSを改造中です。 きちんと勉強してはいませんが、なんとなく弄ることは出来るレベルです。 今、ifで、表示の変更をしているのですが、上手く行かなくて困っています。 お分かりになる方、 何らかの原因に心当たりのある方、 どうぞよろしくお願いします。 ★━━━━━━━━━━━━━━━━━━━━★ データを入れているdatファイル内、 $astrologyというのに、「*Leo*」というのが格納されています。 …で、 if(!$astrology){print "入ってない\n";} else{print "入ってる\n";} …と入れると、「*Leo*」というデータが入っているわけなので、 「入ってる」と、表示されます。 ですが、 if($astrology == "*Aries*"){print "おひつじ座 <br />$astrology \n";} elsif($astrology == "*Leo*"){print "しし座 <br />$astrology\n";} else{print "その他<br />$astrology\n";} ・・・と、書いてみると 「おひつじ座 *Leo*」 と表示されます。 「*Leo*」と表示されているので、呼び込めていない訳ではないと思うのですが…。 ★━━━━━━━━━━━━━━━━━━━━★ 何が原因かわからないので、ちょっとしたアドバイスでも構いません。 ご返答よろしくお願いします。
質問日時: 2011/12/25 23:34 質問者: monica_panda
ベストアンサー
3
0
-
Perlのデータ処理についての質問です
以下のような形式のCSVデータを入力とします。 ファイル1 赤玉,青玉,緑玉 ファイル2 プレイヤー1,赤玉青玉赤玉 プレイヤー2緑玉赤玉赤玉赤玉 プレイヤー3緑玉緑玉青玉緑玉玉青玉 … これを プレイヤー,赤玉,青球,緑玉 プレイヤー1,2,1,0 プレイヤー2,3,0,1 プレイヤー3,0,2,3 という感じでテーブルを生成して、玉の個数をカウントした結果を対応したところにいれ、なければ0を入れるという感じにしたいです。 ご教授願います。
質問日時: 2011/12/25 15:33 質問者: primariest
ベストアンサー
1
0
-
CGIやPHP配布しているサイトを教えて下さい。
携帯にも対応した無料スペース用のCGIやPHPを配布しているサイトがありましたら教えて下さい。
質問日時: 2011/12/22 13:04 質問者: sclub7
ベストアンサー
1
0
-
Perlを使った正規表現について
テキストファイルを読み込んで、以下のルールに従った文字列だけを.txtで出力するプログラムを書いています。 具体的にはテキストファイル中の "text":"★★★","to_user" で囲まれている★★★の部分のみを抽出したいです。 そこで正規表現に触りだしたのですが、表現がうまくいっていないようで1週間ほどはまっています。。うまく出力できるように直しをいただけないでしょうか。 打ち明けてしまうと、★★★の部分はtwitterの呟き(日本語)になります。 以下がそのソースになります。よろしくお願いします。 print "Input file name: "; $ifname = <STDIN>; open(IN, $ifname); open(OUT, "> out.txt"); #出力ファイル while(<IN>){ if($ifname =" m/"test":(.*?),"to_user"/; next if($_ eq ""); print OUT "$_\n"; #書き出し } close(OUT); close(IN);
質問日時: 2011/12/21 21:16 質問者: shares
ベストアンサー
3
0
-
perl言語のプログラム不良
あらかじめ作った英語のテキストファイルを入力し、 文字数をカウントするプログラム(perl言語)でつくっています。 あらかたできたと思うのですが、 明らかに100文字以上あるにも関わらず なぜか3文字とカウントされます。 どこが不具合がわかる方いましたら よろしくお願いいたします。 以下が問題のプログラムです。 print"読み込むファイル名を入力してください。\n"; $input_file = <STDIN>; open(INPUT, "$input_file") or die "$!"; sub count_words{ my @ words = split(/\W+/,$_[0]); my $num_words=@ words; } $num_words = &count_words($input_file); print"単語数は$num_wordsです。"; close(INPUT);
質問日時: 2011/12/20 16:09 質問者: runaeri
解決済
2
0
-
open() で開くだけで破損するか
open(DB,"$file") ;でデータを開くだけでデータが破損することはありますか? たとえば open(DB,"$file") ; flock(DB,2); @lines = <DB>; close(DB); flock(DB,8); のように@linesにデータを格納します。 $fileに上書きはしません。 上記ファイル操作だけで、同時接続があったときにファイルが破損することはありますか? ファイルロック関数を付けた方がいいですか?
質問日時: 2011/12/20 11:24 質問者: sunawachi2
解決済
1
0
-
Perlでの配列のソートについての質問です
Perlでの配列のソートについての質問です。 実行例) 数学,山田,60,佐藤,80,蓑田,55,岸本,90,小笠原,75 英語,山田,70,佐藤,50,蓑田,81,岸本,99,小笠原,80 上のようなcsvファイルを入力として、以下のように各行の中で点数順にソートしてから出力する 数学,岸本,90,佐藤,80,小笠原,75,山田,60,蓑田,55 英語,岸本,99,,蓑田,81,小笠原,80山田,70,佐藤,50 どのようにすればいいでしょうか?ご教授願います。
質問日時: 2011/12/19 08:47 質問者: primariest
ベストアンサー
6
0
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【Perl】に関するコラム/記事
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perlで特定文字列から特定文字列ま...
-
perl 初等プログラミングについて
-
Perlのエラーについてご教授くださ...
-
perlプログラミング 空白行削除
-
Windows10においての『Perl』のプロ...
-
openした後、closeしないでプログラ...
-
perlをバージョンアップしたら、今...
-
Perlでファイルの末尾から指定文字...
-
INDIRECT 横に再度抽出したい
-
テキストファイルで提出とは?
-
perl の open について教えてくださ...
-
アルファベットに付いて質問します...
-
#!/usr/bin/perlで書きだしたCGIを...
-
ファイルアイコンの左下に緑の□の中...
-
Perlで時間の計算
-
perlの構文でカンマの意味が分からない
-
Blenderについて
-
Perl の外部モジュールの利用方法
-
Perlのプログラムについて
-
vlookupがうまくいきません、教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
openした後、closeしないでプログラ...
-
テキストファイルで提出とは?
-
Perlのエラーについてご教授くださ...
-
perlをバージョンアップしたら、今...
-
perlで2次元配列をサブルーチンに...
-
INDIRECT 横に再度抽出したい
-
Wallpaper Engineでおすすめの壁紙...
-
bashスクリプト
-
Strawberry Perl for Windows で Ou...
-
perlプログラミング 空白行削除
-
perlの構文でカンマの意味が分からない
-
Perl の外部モジュールの利用方法
-
Perlで、「が」を、「が」...
-
Windows版のPerlについて
-
Perlで時間の計算
-
Perlでファイルの末尾から指定文字...
-
perl 初等プログラミングについて
-
VBA変数をFunction.VLookupの戻り値...
-
Perlで特定文字列から特定文字列ま...
-
perl 正規表現でエラー
おすすめ情報