Perl

全6055件中321~340件表示
  • CSVファイルの""内コンマの処理

    以下のようなCSVファイルがあります。 xxx,yyy,"z,zz",XXX,"YY,Y",ZZZ,111,222 これを、 xxx,yyy,zzz,XXX,YYY,ZZZ,111,222 の様にperlで ""内のコンマを取りたいのですが、どうしたらよいでしょうか? xxx,yyy,z zz,XXX,YY Y,ZZZ,111,222 の様に""内コンマを別の文字に置き換えても可です。 よろしくお願いします。

    • ベストアンサー
    • Silmaril
    • Perl
    • 回答数1
  • (Perl CPAN) DBDがはいらない

    「windows7 64bit に ActivePerl をいれています」 以下のプログラムを書いて実行したところ、エラーメッセージがでてきました。 Software error: DBD::MySQL initialisation failed: Can't locate object method "driver" via package "DBD::MySQL" at C:/usr/local/lib/DBI.pm line 808. Perhaps the capitalisation of DBD 'MySQL' isn't right. at C:/Apache2.2/htdocs/00001/shinki_data_sakusei.pl line 33. これはつまり、DBD::MySQL がないよ!という意味であると思うのですが、ppmを起動してDBDにあたるモジュールをインストールして再実行してもまだ同じエラーがでます。どうしてもwindows7上で作らなければならないので、困っています。どこか参考になるサイトはないでしょうか? ========================================= use strict; use warnings; # エラーをブラウザに表示 use CGI::Carp qw(fatalsToBrowser); use utf8; binmode STDIN, ':encoding(UTF-8)'; binmode STDOUT, ':encoding(UTF-8)'; binmode STDERR, ':encoding(UTF-8)'; use Encode; use DBI; # プログラム開始 # ユーザ名とパスワード my $user = 'root'; my $pass = 'root'; #データベースへ接続 my $db = DBI->connect('DBI:MySQL:localhost', $user, $pass,); if ( ! $db ){ print "エラー: $db->err $db->errstr\n"; } # 命令 my $sth = $db->prepare( "SELECT * FROM login" ); # 実行 $sth->execute; # 出力 while( my @row = $sth->fetchrow_array ){ print "@row\n"; } #データベースから切断 $db->disconnect; __END__

  • ActivePerl を使用して MySQL に

    すいません、初心者です。 ActivePerl を使用して MySQL にアクセスしたいです。 windows7 64bit にActivePerlとMySQLを入れ込みました。 MySQLにアクセスするためのユーザー名やパスワードは root です。 login_data というテーブルを適当作成しました。 実際にアクセスしてみるには、どのようなコードを書けばいいでしょうか? =========================================== use strict; use warnings; # エラーをブラウザに表示 use CGI::Carp qw(fatalsToBrowser); use utf8; binmode STDIN, ':encoding(UTF-8)'; binmode STDOUT, ':encoding(UTF-8)'; binmode STDERR, ':encoding(UTF-8)'; use Encode; use DBI; # プログラム開始 # ユーザ名とパスワード my $user = 'root'; my $pass = 'root'; #データベースへ接続 my $db = DBI->connect('DBI:MySQL:localhost:login_data', $user, $pass,); if ( ! $db ){ print "エラー: $db->err $db->errstr\n"; } # 命令 my $sth = $db->prepare( "select * from test" ); # 実行 $sth->execute; # 出力 while( my @row = $sth->fetchrow_array ){ print "@row\n"; } #データベースから切断 $db->disconnect; __END__

  • tripod.comで

    cgi-binというディレクトリを作り、その中にcgiを設置してブラウザで開いたら、cgi-binの上のindex.htmに飛ばされました。何が原因ですか?

  • Perlで文字列の中で重複しているグループ排除等

    サイトで探してもみつからないためこちらで質問します。 タイトルの通り、どのようにしたら重複を排除するか教えてください。 また、半角に限らず全角も排除できるような方法があればそれも教えてください。 たとえば、以下のソースを例に示します。 ------------------ #!/usr/bin/perl require 'cgi-lib.pl'; require 'jcode.pl'; my $buf1, $buf2, $buf3, $buf4; $buf1 = 'aabbccdd'; $buf2 = 'ああいいううええ'; $buf3 =~ tr///cs; $buf4 =~ tr///cs; print $buf1 . '->' . $buf3, "\n"; print $buf2 . '->' . $buf4, "\n"; #end ------------------ 上記の方法は、aabbccddをabcd、ああいいううええをあいうえにするといった重複排除のつもりでしたが、結果は以下の通り ------------------ aabbccdd->abcd ああいいうう->ああいいうう ------------------ 半角だとうまくいきますが、全角だとうまくいきません。これは基本的にJCodeなど 絡めて処理する必要があるのでしょうか。 また、「あいうえあいうえ」を「あいうえ」のひとつにする方法もわかりません。 よろしくお願いします。

  • 【perl】携帯での利用について【cgi】

    お世話になっております、ぷりんと申します。 当方、現在Perl言語にてCGIを作成->HTMLにて出力をしてサイト運営を行なっています。 その中で、携帯電話の利用者の一部が、「FORMタグでの投稿が反映されない」との連絡がきました。 その方はSH-01B(ガラケー)を使用しており、携帯電話のブラウザキャッシュの問題かな?と思い「携帯電話の電源を入れなおし、クッキーを有効にしてからお試し下さい」と伝えました。 しかし、現状できないようです。 そこで、キャッシュ対策にHTMLのヘッダに print "<meta http-equiv='pragma' content='no-cache' /> <meta http-equiv='cache-control' content='no-cache' /> <meta http-equiv='expires' content='0' />"; を入力したのですが、残念ながら問題の解決にはなりませんでした。 これはキャッシュが悪さをしているのでしょうか?それとも他になにか原因があるのでしょうか? 言葉足らずかと思いますが、ご教授の程お願い申し上げます。 補足 アクセスログをとっていますが、「投稿が反映されなくなった」と連絡がきた時、その方がアクセスした形跡が見られません。

  • Perlにおけるパターンマッチ

    パターンマッチの勉強をしていたところ 偶然「ちょう」という言葉を以下のように書くとひっかからないことに気づきました。 なぜ「ちょう」という日本語だとひっかからないのでしょうか? また「ちょう」がパターンマッチにひっかかるようにするのにはどうすべきなのでしょうか? if($word =~ /ちょう/){ { &error("エラー","「ちょう」という言葉は使用できません"); }

    • ベストアンサー
    • masa-25
    • Perl
    • 回答数1
  • Perlのハッシュ変数のソートについて

    ハッシュ変数の並べ替えをやりたいです。ただ、値の長さでソートをしたいのです。 my %tan_syouhin = ( '佐賀' => 'あいうえお', '滋賀' => 'かき', '無我' => 'さしすせそそそ', '千賀' => 'うりるら', '日我' => 'ぜるだんぽ' ); というハッシュ変数があって「値の長さ」でソートするにはどうしたら良いでしょうか?

  • Perl Dev Kit error

    いつもお世話になります。 ActiveState.comのActivePerl 5.14.4をwindows 8にインストールしました。 それから去年ActiveState.comから購入した(少し古い)  Perl Dev Kit 9.2.1とそのライセンスをインストールしました。 PDKのツールたとえばPerlAPPを起動しようとすると Win32:BuildNumber not consistent with perl -v というエラーがでます。 ActivePerl は5.16.3もダウンロードできますが、やはり同じエラーです。 もう一度PDKを買いなおさないとだめでしょうか。。。 ご指導のほどお願いいたします。

    • ベストアンサー
    • ng999
    • Perl
    • 回答数2
  • Perl のプログラム二重起動について

    Perlでの二重起動?についての疑問があるので質問いたします。 ============================ (状況) 1)Aというプログラムが存在し、そのAというプログラムはタスクスケジューラーによって10分毎に起動しています。 2)Aプログラムは全体の処理が終わるまでに通常5分の時間がかかります。処理が終わればexitで終わります。 (ちなみにAプログラムはファイル書き込みなどの排他処理が必要なフローはありません) ============================ というのをふまえ、疑問点が出てきたので質問します。 例えば、あるイレギュラーな出来事が起こり、Aプログラムの処理時間が15分に伸びてしまいました。 しかし、タスクスケジューラーは10分間隔でAプログラムを起動させます。 このとき、オーバーした5分間だけAプログラムは二重に起動することになります。           0   5    10 15 20 最初のAプログラム ===============  次のAプログラム           ========== この場合、windows7上のActivePerlは、どんな動きをするのでしょうか? 予約みたいな形になり、最初のAプログラムが終わってから次のAプログラムが動くのでしょうか? それとも二重起動するのでしょうか?

  • TwitterAPI1.1でGetメソッド(?)の

    perlでフォロワー一覧を取りたいのですがよくわからず困っています。 こちら、 http://pplace.jp/2012/10/1058/ 参考にしてやろうとしているのですが、 使えなくなったとされる1が使えて、1.1のほうがむしろエラーになります。 http://api.twitter.com/1/statuses/followers/TwitterのID.xml → これはOK http://api.twitter.com/1.1/friends/ids.json?screen_name=TwitterのID → エラーになる {"errors":[{"message":"Bad Authentication data","code":215}]} どうやらOauthの失敗とのことですが、、、 簡単なサンプルは動きました。 ---- こちらは確認 つぶやきサンプルです ------------- use strict; use Net::Twitter; my $consumer_key = '' my $consumer_secret = ''; my $token = ''; my $token_secret = ''; my $nt = Net::Twitter->new( traits => [qw/OAuth API::REST/], consumer_key => $consumer_key, consumer_secret => $consumer_secret, access_token => $token, access_token_secret => $token_secret, ); my $result = $nt->update('Hello World'); ----------------------------------------------------- しかし、 そもそも上のようなURL(GETメソッド?)をどうやってOAuthで呼び出すのかがわかりません・・・ perldoc Net::Twitter も見たのですが、それっぽい記述はありませんでした・・・ perlでTwitter1.1のAPIのGetメソッド(?)はどうやって呼び出すのでしょうか・・・

    • ベストアンサー
    • azicyan
    • Perl
    • 回答数1
  • 連続投票の制限

    投票cgiを設置したいのですがうまくいきません、集計を1日一回だったのを少し改造して即時集計にしました 一応動くのですが、連続投票できてしまいます。 連続投票を一定時間制限できるようにしたいのですがうまくいきません 60秒くらい間をおいてから投票できるようにできますか? ip制限もあるみたいなのですがこれも機能してないです・・・ 改善できるなら元のソースがかなり変わってもかまいません 連続投票制限だけでも機能できればと思っています。よろしくお願いします local $times = time(); sub vote{ if($FORM{id}){ my $fl=0; if(!$CK_ref){$fl=1;} else{ if(index($ENV{'HTTP_REFERER'},index.html>=0){$fl=1;} } if($fl){ $FORM{id}=~s/\n//g; my $vote = $FORM{vt2}?1:0; open(OUT,">>vote_temp.cgi"); #時間用のログファイルに書き込み print OUT "$FORM{id}<>$ENV{'REMOTE_ADDR'}<>$FORM{vt}<>$vote<>".$times."<>\n"; close(OUT); &reset_vote if $VT_RESET < $times; my(@log_lines,%pt,%pt2,%cnt,$name,$value,%CKIP); open(IN,"vote_temp.cgi"); my @log = <IN>; close(IN); if(@log){ my $cktime = $times - 60; #60秒制限 open(IN,"vote_ck_IP.cgi"); #投票した人のIPを記録したログ while(<IN>){ my @ck = split('<>'); next if $_[1] < $cktime; $CKIP{$_[0]} = $_[1]; } close(IN); foreach(@log){ chop; my @rank = split('<>'); #ID<>IP<>評価<>おすすめ<>時間\n next if $CKIP{"$rank[0]_$rank[1]"}; $pt{$rank[0].'_'.$rank[2]}++; $pt2{$rank[0]}++ if $rank[3]; $cnt{$rank[0]}++; $CKIP{"$rank[0]_$rank[1]"} = $rank[4]; } open(OUT,">vote_temp.cgi"); close(OUT); open(OUT,">vote_ck_IP.cgi"); while(($name, $value) = each(%CKIP)){ print OUT "$name<>$value<>\n"; } close(OUT); open(IN,"log.cgi"); my @data = <IN>; close(IN); foreach(@data){ #集計処理長かったので省略 } open(OUT,">vote_bf.cgi"); open(IN,"vote_log.cgi"); while(<IN>){ print OUT $_; } close(IN); close(OUT); open(OUT,">vote_log.cgi"); print OUT @log_lines; print OUT "\n1;\n"; close(OUT); } &make_vote_ck('set'); } } sub reset_vote{ my @log; foreach my $i(1..$LAST_ID){ next if !@{$VT[$i]}; $VT[$i][18] = $VT[$i][7]; $VT[$i][19] = $VT[$i][8]; $VT[$i][20] = $VT[$i][0]; foreach my $j(0..8){ $VT[$i][$j] = 0; } push(@log,'$VT['.$i.'] = ['.(join(',',@{$VT[$i]}))."];\n"); } open(OUT,">vote_log.cgi"); print OUT @log; print OUT "\n1;\n"; close(OUT); &make_vote_ck('reset'); } sub make_vote_ck{ if($_[0] eq 'set'){ my @t =localtime($times + 86400); $VT_TIME = timelocal(0,0,5,$t[3],$t[4],$t[5]); $VT_RANK = $VT_RUI = $VT_RECO = $VT_RCRUI = $VT_COUNT = $VT_CTRUI = $VRK_CK = 1; } if($_[0] eq 'reset'){ my @m =localtime($times); $m[4] += 1; if($m[4] > 12){ $m[4] = 1; $m[5] += 1; } $VT_RESET = timelocal(0,0,2,1,$m[4],$m[5]); $VT_RANK = $VT_RECO = $VRK_RS = $VRK_CK = 1; } if($_[0] eq 'restore'){ $VT_RANK = $VT_RUI = $VT_RCRUI = $VT_RECO = $VT_COUNT = $VT_CTRUI = $VRK_CK = 1; } open(OUT,">vote_ck.cgi"); print OUT "\$VT_TIME = '".$VT_TIME. "';\n"; print OUT "\$VT_RESET = '".$VT_RESET. "';\n"; print OUT "\$VT_RANK = '".$VT_RANK. "';\n"; print OUT "\$VT_RUI = '".$VT_RUI. "';\n"; print OUT "\$VT_RECO = '".$VT_RECO. "';\n"; print OUT "\$VT_RCRUI = '".$VT_RCRUI. "';\n"; print OUT "\$VT_COUNT = '".$VT_COUNT. "';\n"; print OUT "\$VT_CTRUI = '".$VT_CTRUI. "';\n"; print OUT "\$VRK_CK = '".$VRK_CK. "';\n"; print OUT "\$VRK_RS = '".$VRK_RS. "';\n"; print OUT "\$LAST_ID = '".$LAST_ID. "';\n"; print OUT "\n1;\n"; close(OUT); }

    • ベストアンサー
    • flash0
    • Perl
    • 回答数1
  • 楽天あす楽の検索文字コードにEUC-JPを使いたい

    楽天のあす楽で「紅茶」と検索すると 「紅茶」の部分は「%E7%B4%85%E8%8C%B6」とUTF-8にエンコードされます。 http://search.rakuten.co.jp/asuraku/mall/%E7%B4%85%E8%8C%B6/ これをUTF-8の「%E7%B4%85%E8%8C%B6」ではなく、 EUC-JPの「%B9%C8%C3%E3」を使って検索する方法はないでしょうか? 「http://search.rakuten.co.jp/asuraku/」で始まるURLでなくても結構です。 あす楽の検索ができれば、どんなURLでもOKです。 分かる方がいらっしゃいましたら教えてください。 よろしくお願いいたします。

    • 締切済み
    • golf90
    • Perl
    • 回答数1
  • IIS の@INC ERRORについて教えて

    wiin8にIISとPerl64をインストールしました。「Default Web Site」を「C:\wabs」に設定。 tst.cgi #!/usr/local/bin/perl print "Content-Type: text/html", "\n\n"; print "<HTML>\n"; print "<BODY>\n"; print "こんにちは!<BR>\n"; print "</BODY>\n"; print "</HTML>\n"; で、無事に動いてると確認したのですが、 C:\wabs\lib\jcode.pl を設置して、 require './lib/jcode.pl'; として、実行すると ERROR = Can't locate ./lib/jcode.pl in @INC (@INC・・・・ と、 パスが通っていないようなメッセージが出て、解決策が解らず困っています。 どなたか、解決策を教えてください。よろしくお願いします。

  • perlでcsvの指定フィールドに書き込みする方法

    perlを勉強中の初心者です。 以下のような入力ファイル(csv)があった場合、特定のフィールド(この場合"0")を参照して、その数字を元に、出力ファイルには、参照したフィールドからデータ書き込むプログラム方法を教えてください。 ---入力ファイル 0,a,b,c 1,d,e,f 2,g,h,i 10,w,s,x ---出力ファイル 0,a,b,c ,1,d,e,f ,,2,g,h,i ,,,,,,,,,,10,w,s,x

  • perl 5.8.8 日本語マッチ

    perl5.8.8を使っています。 日本語にマッチする正規表現を書きたいのですが、どうしてもマッチしません。 例えば、以下のファイルtest.txtから「さしすせそ」だけを抽出し、表示させたいです。 ---------test.txt-------------------------------- あいうえお かきくけこ さしすせそ たちつてと -------------------------------------------------- ----------test.pl-------------------------------- use strict; use warnings; open(FILE, 'test.txt') or die "$!"; my @file = <FILE>; close(FILE); foreach my $line (@file){ if($line =~ /^さ/){ print "$line\n"; } } ------------------------------------------------ このtest.plを実行しても「さしすせそ」を抽出することが できません。 どうしたらよいのでしょうか? 自宅の新しいバージョンのperlだとできるのですが 会社のperlは5.8.8で顧客環境でもあるのでバージョンアップも できません。 すみませんが、よろしくお願いいたします。

    • ベストアンサー
    • koun
    • Perl
    • 回答数4
  • 5行おきに5行ずつ抽出するには?~教えて下さい。

    ファイル内のデータの並び替え処理したく、質問します。 データは、1列目に通し番号、2、3、4列目にデータが入っています(下に例を書きます)。 5行ごとに5つの行のデータをまとめたいのです。 具体的に言うと、「1、6、11、16、21行目」のデータをまとめて1行(タブ切り)に。新しい行には、真ん中の数字「11」を先頭列に入れたいです。 それをずらしてゆき、「2、7、12、17、21行目」のデータを1行に、、というようにしたいのです。 扱うファイルの行数は、様々です。 これを統計処理を行う予定です。perl初心者ですので、トライした思案策を載せても参考にならないかと思い、0から教えて頂く形になりますが、よろしくお願いします。 1 10 10 10 2 20 20 20 3 30 30 30 4 40 40 40 5 50 50 50 6 10 10 10 7 20 20 20 8 30 30 30 9 40 40 40 10 50 50 50 11 10 10 10 12 20 20 20 13 30 30 30 14 40 40 40 15 50 50 50 16 10 10 10 17 20 20 20 18 30 30 30 19 40 40 40 20 50 50 50 21 10 10 10 22 20 20 20 23 30 30 30 24 40 40 40 25 50 50 50 出来上がりは、 11 10 10 10 10 10 10 10 10 10 12 20 20 20 20 20 20 20 20 20 というようになります。

    • ベストアンサー
    • kina808
    • Perl
    • 回答数2
  • 【ImageMagick】5.42で画像向き変更

    PerlのImage::Magickで、画像の加工を行っています。 バージョンは下記です。 ========= Perl 5.6.1 Image::Magick 5.42 ========= iPhone画像の向きがおかしくなってしまうので、正しい画像の向きに変更したいのですが、 $img->AutoOrient(); を使えばいい事はわかりましたが、バージョンの違いによって、使用できませんでした。 都合上、上記のImage::Magickのバージョンは変更できません。 AutoOrient以外で記載したバージョンでも画像を正しい向きに変更する方法はありますでしょうか。

    • ベストアンサー
    • chizu0710
    • Perl
    • 回答数1
  • プログラムに関して教えてください

    以下のスクリプトでわからなくて困っています。 [A] 以下のスクリプトでサーバー上の同じディレクトリーにダウンロードが可能です。 use LWP::Simple; my $url = 'https://ドメイン名/samples/10000.mp3'; ## DOWNLOAD FROM URL!! my $file = '10000.mp3'; getstore($url, $file); ------------------------------ [B] 以下のスクリプトでPCのローカルフォルダにダウンロードが可能です。 my $path = "samples/10000.mp3"; ##PATH_TO_FILE my $file = "10000.mp3"; print "Content-Type:application/octet-stream; name=\"$file\"\r\n"; print "Content-Disposition: attachment; filename=\"$file\"\r\n\n"; open( FILE, $path ); while(read(FILE, $buffer, 100) ) { print("$buffer"); } ------------------------------ フルパスの URL を指定してローカルPCにダウンロードさせるにはどうしたらいいのでしょうか?

  • perlのsortについて

    下のテキストをグループ別でabc順にソートしたいのですが AG tanaka abe kaneda BG hayama oota endou CG kawai gennda hirata そのままsort関数を使用し、ソートをするとAG,BG,CGもソートされてしまい、さらに名前もAG,BG,CG関係なしにソートされてしまいます、 AG,BG、CGを動かさず、中身だけをソートする方法はないでしょうか?